Esercizi di informatica sulla conversione decimale – binaria e viceversa
Esercizio 1
Converti i seguenti numeri da decimale a binario: 45 – 36 – 78 – 112 – 245
Esercizio 2
Converti i seguenti numeri da binario a decimale: 11010 – 11100 – 101011 – 111000 – 100010
Esercizio 3
Esegui la sottrazione in complemento a 2 dei numeri 25 e 31
Esercizio 4
Converti con il metodo della virgola fissa i seguenti numeri utilizzando 1 bit per il segno, 4 bit per la parte intera e 3 bit per la parte frazionaria:
- -2,625
- -4,432
- 23,456
Esercizio 5
Converti i numeri riportati qui sotto con la rappresentazione binaria IEEE754. Utilizza il metodo della virgola mobile float:
- -5,84567
- 23,4567
- -16,452
Esercizi di informatica sulla conversione decimale – binaria e viceversa
Esercizio 1
Converti i seguenti numeri da decimale a binario: 45 – 36 – 78 – 112 – 245
Esercizio 2
Converti i seguenti numeri da binario a decimale: 11010 – 11100 – 101011 – 111000 – 100010
Esercizio 3
Esegui la sottrazione in complemento a 2 dei numeri 25 e 31
Esercizio 4
Converti con il metodo della virgola fissa i seguenti numeri utilizzando 1 bit per il segno, 4 bit per la parte intera e 3 bit per la parte frazionaria:
- -2,625
- -4,432
- 23,456
Esercizio 5
Converti i numeri riportati qui sotto con la rappresentazione binaria IEEE754. Utilizza il metodo della virgola mobile float:
- -5,84567
- 23,4567
- -16,452
Esercizio 1
45:2 = 22 1
22:2 = 11 0
11:2 = 5 1
5:2 = 2 1
2:2 = 1 0
1:2 = 0 1
4510 = 1011012
36:2 = 18 0
18:2 = 9 0
9:2 = 4 1
4:2 = 2 0
2:2 = 1 0
1:2 = 0 1
3610 = 1001002
78:2 = 39 0
39:2 = 19 1
19:2 = 9 1
9:2 = 4 1
4:2 = 2 0
2:2 = 1 0
1:2 = 0 1
7810 = 10011102
112:2 = 56 0
56:2 = 28 0
28:2 = 14 0
14:2 = 7 0
7:2 = 3 1
3:2 = 1 1
1:2 = 0 1
11210 = 11100002
245:2 = 122 1
122:2 = 61 0
61:2 = 30 1
30:2 = 15 0
15:2 = 7 1
7:2 = 3 1
3:2 = 1 1
1:2 = 0 1
24510 = 111101012
Esercizio 2
11010 = 24 + 23 + 21 = 16 + 8 + 2 = 2610
11100 = 24 + 23 + 22 = 16 + 8 + 4 = 2810
101011 = 25 + 23 + 21 + 20 = 32 + 8 + 2 + 1 = 4310
111000 = 25 + 24 + 23 = 32 + 16 + 8 = 5610
100010 = 25 + 21 = 32 + 2 = 3410
Esercizio 3
Sottrazione in complemento a 2 di 25 e 31
25:2 = 12 1
12:2 = 6 0
6:2 = 3 0
3:2 = 1 1
1:2 = 1 1
2510 = 0110012
31:2 = 15 1
15:2 = 7 1
7:2 = 3 1
3:2 = 1 1
1:2 = 0 1
3110 = 111112
Sottrazione in complemento a 2
25 + (-31)
011001
+100001
=111010
111010
100010
+1102 = 610
Esercizio 4
Virgola fissa con 1 bit di segno + 4 bit parte intera + 3 bit parte frazionaria
-2,625
Segno: 1
Parte intera: 2:2 = 1 0 1:2 = 0 1
MSB
10 parte intera binario -> 0010 (4 bit)
Parte frazionaria:
0,625 x 2 = 1,250 1
0,250 x 2 = 0,500 0
0,500 x 2 = 1,000 1 -> 0,101
-2,625 = 110 S.P.I. 0010,1012
Virgola fissa
Il numero è rappresentato in modo corretto
-4,432
Segno: 1
Parte intera: 4:2 = 2 0 2:2 = 1 0 1:2 = 0 1
410 = 1002 -> 0100 (4 bit)
Parte frazionaria:
0,432 x 2 = 0,864 0
0,864 x 2 = 1,728 1
0,728 x 2 = 1,456 1 -> 0,011 3 bit
-4,43210 = 10010,011 Approssimazione
Il numero non è rappresentato in modo corretto a causa del troncamento nella parte frazionaria dovuto all'utilizzo di soli 3 bit
+23,456
Segno: 0
Parte intera:
23:2=11 1
11:2=5 1
5:2=2 1
2:2=1 0
1:2=0 1
2310=101112 Errore perché è necessario di 5 bit per rappresentare correttamente il numero 2310
Parte frazionata:
0,456x2=0,912 0
0,912x2=1,824 1
0,824x2=1,648 1
0,011 Errore perché nell'esercizio in tutto avremo necessità di più bit
Non riesco a rappresentare correttamente il numero +23,456 nei sulla parte intera e nei sulla parte frazionaria, usando solo 4 bit per la parte intera ho un errore molto notevole.
Esercizio 5 - Conversione nella rappresentazione binaria IEEE 754 in virgola mobile float
Codifica float ➜ 32 bit: 1 bit segno, 8 bit esponente, 23 bit mantissa
Segno bit: 1
Parte intera: 5:2=2, 2:2=1, 1:2=0
s10=102
Parte frazionaria:
- 0,84567 x 2 = 1,69134
- 0,69134 x 2 = 1,38268
- 0,38268 x 2 = 0,76536
- 0,76536 x 2 = 1,53072
- 0,53072 x 2 = 1,06144
- 0,06144 x 2 = 0,12288
- 0,12288 x 2 = 0,24576
- 0,24576 x 2 = 0,49152
- 0,49152 x 2 = 0,98304
- 0,98304 x 2 = 1,96608
- 0,96608 x 2 = 1,93216
- 0,93216 x 2 = 1,86432
- 0,86432 x 2 = 1,72864
- 0,72864 x 2 = 1,45728
- 0,45728 x 2 = 0,91456
- 0,91456 x 2 = 1,82912
- 0,82912 x 2 = 1,65824
- 0,65824 x 2 = 1,31648
- 0,31648 x 2 = 0,63296
- 0,63296 x 2 = 1,26592
- 0,26592 x 2 = 0,53184
- 0,53184 x 2 = 1,06368
- 0,06368 x 2 = 0,12736
Numero in binario parte int. + fraz. e: 2 + 127 = 129
- 128: 2 = 64
- 64: 2 = 32
- 32: 2 = 16
- 16: 2 = 8
- 8: 2 = 4
- 4: 2 = 2
- 2: 2 = 1
- 1: 2 = 0
s = 1
e = 10000001
m = 01101011000011101011100
+23,4567
S=0
23:2=11 1
11:2=5 1
5:2=2 1
2:2=1 0
1:2=0 1
10111
0,4567×2=0,9134 0
0,9134×2=1,8268 1
0,8268×2=1,6536 1
0,6536×2=1,3072 1
0,3072×2=0,6144 0
0,6144×2=1,2288 1
0,2288×2=0,4576 0
0,4576×2=0,9152 0
0,9152×2=1,8304 1
0,8304×2=1,6608 1
0,6608×2=1,3216 1
0,3216×2=0,6432 0
0,6432×2=1,2864 1
0,2864×2=0,5728 0
0,5728×2=1,1456 1
0,1456×2=0,2912 0
0,2912×2=0,5824 0
0,5824×2=1,1648 1
0,1648×2=0,3296 0
0,3296×2=0,6592 0
0,6592×2=1,3184 1
0,3184×2=0,6368 0
0,6368×2=1,2736
1,2736×2
1 10111,011100010011010010010011,01111011001011100100100011001
e=01000000
e=4+127=131
131:2=65
65:2=32
32:2=16
16:2=8
8:2=4
4:2=2
2:2=1
1:2=0