Soluzioni Esercizi su rappresentazione binaria
dell’informazione
Mauro Bianco
–
1
Numeri naturali
Esercizi:
1. Si calcoli 3234 + 1024 .
Partendo da destra a sinistra 24 + 34 = 510 = (4 + 1)10 = (11)4 . La cifra
della somma è 1 e 1 il riporto. La seconda cifra 2 4 + 04 + 14 = 34 , non
c’è riporto. 34 + 14 = 410 = (10)4 , quindi la cifra della somma vale 0 e il
riporto è 1. Il risultato è (1031)4 . Controlliamo: 3234 = 3·1+2·4+3·16 =
3 + 8 + 48 = 59, 1024 = 2 · 1 + 0 · 4 + 1 · 16 = 18. 59 + 18 = 77. Convertiamo
(1031)4 = 1 + 3 · 4 + 1 · 64 = 77.
2. Come si esprime bi in base b per un generico i?
b = 1 · b1 + 0 · b1 = (10)b
3. Si trovi l’algoritmo per il prodottoP
di due numeri in base b.
n
i
Siano
x
=
(x
x
.
.
.
x
x
)
=
n
n−1
1
0
b
i=0 xi b e y = (yn yn−1 . . . y1 y0 )b =
Pm
j
j=0 yj b .

! m
n
X
X
z =x·y =
x i bi · 
y j bj  =
i=0
=
=
m
X
i=0
=
j=0
m
X
i=0
n
X
!
bj =
i
!
bj =
i=0
i=0
(ri+1 b
i=0
i
yj x i b
(ri+1 b + si )b
n
m
X
X
i=0
n
X
i+1
i
!
+ s i · b ) bj
Si devono conoscere i prodotti delle singole cifre, con gli eventuali riporti.
Il risultato del prodotto tra x e la cifra i di y va moltiplicato per bi (shift
1
verso sinistra di i posizioni). Vediamo un esempio, in cui si suppone che
non ci siano riporti.
y2 x 2
x2
y2
y0 x 2
y1 x 1
y2 x 0
y1 x 2
y2 x 1
x1
y1
y0 x 1
y1 x 0
0
x0
y0
y0 x 0
0
0
×
=
+
+
=
Nel caso di numeri binari si noti che il riporto nel prodotto è sempre nullo
e il prodotto di x è per 1 o per 0. Esempio 6 × 5 = 30:
1
1
2
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
×
=
+
+
=
Conversioni binario-decimale e decimale-binario
1. Si convertano in decimale i seguenti numeri
• 325 = 2 · 5 + 2 = 12
• 334 = 3 · 4 + 3 = 15
• 1233 = 1 · 9 + 2 · 3 + 3 = 18
• 32016 = 3 · 216 + 2 · 36 + 1 = 721
2. Si convertano i seguenti numeri decimali in base 5
• 102310
1023/5 = 204, resto = 3
204/5 = 40, resto = 4
40/5 = 8, resto = 0
8/5 = 1, resto = 3
1/5 = 0, resto = 1
La soluzione è 130435
3. Si convertino in binario i seguenti numeri decimali:
• 3210 = 1000002
• 6410 = 10000002
2
• 75310 :
Numero
Cifra
753/2=376
1
376/2=188
0
188/2=94
0
94/2= 47
0
47/2=23
1
23/2=11
1
11/2=5
1
5/2=2
1
2/2=1
0
1/2=0
1
La soluzione è 10111100012 .
4. Si convertino in decimale i seguenti numeri binari.
• 100101011001102
Cifra Operazione
1
1
0
1*2+0
0
2*2+0
1
4*2+1
0
9*2+0
1
18*2+1
0
37*2+0
1
74*2+1
1
149*2+1
0
299*2+0
0
598*2+0
1
1196*2+1
1
2393*2+1
0
4787*2
Numero
1
2
4
9
18
37
74
149
299
598
1196
2393
4787
9574
5. Di quante cifre binarie sarà costituito il numero 1056? Come si può dirlo
senza effettuare la conversione? (Suggerimento: qual è il massimo intero
rappresentabile con n cifre binarie?)
Con n cifre binarie si codificano 2n numeri da 0 a 2n − 1. Per codificare
un numero x serve un numero di cifre n tale per cui 2n − 1 ≥ x, il che
implica che deve essere n ≥ log2 (x + 1), ovvero, visto che n deve essere
intero, n = dlog2 (x + 1)e. Nel caso di x = 1056, si ha n = 11.
3
Numeri negativi
Esercizi:
1. Si dia la rappresentazione in complemento a 1 di -123 con parole di 8 bit.
3
12310 = 011110112 . In complemento a 1 −123 viene scritto 10000100.
2. Siano 0110 e 1010 due sequenze di bit che rappresentano i numeri a e b in
complemento a 1. Si calcoli la rappresentazione di a+b in complemento a
1 usando solo le rappresentazioni, quindi senza passare per la conversione.
Sia x il primo numero (maggiore di zero) e −y il secondo (minore di
zero). −y è rappresentato da ȳ = 10102 = (24 − 1) − y. Si ha che
y = 24 − 1 − ȳ. Se dobbiamo calcolare x − y dovremmo quindi scrivere
x + ȳ − 24 − 1. x + ȳ = 01102 + 10102 = 100002 , come numero binario puro.
Adesso si deve sottrarre 24 − 1 = 11112 . Quindi 10000 − 1111 = 0001.
Controlliamo 01102 = 610 , −01012 = −510 (il complemento a 1 di 0101 è
1010). 6 − 5 = 1.
3. Si rappresenti −123 in complemento a 2 con parole di 8 bit. Qual è il
valore binario rappresentato interpretato come numero binario puro?
12310 = 011110112 . In complemento a 2 −123 viene scritto 10000101.
Come numero puro esso è 13310 , ovvero 256-123.
4. Si rappresenti 154 in complemento a 2 con parole di 8 bit. Qual è il valore
binario rappresentato interpretato come numero binario puro?
15410 = 100110102 . 154 è positivo, ma il bit 7 della rappresentazione è 1,
quindi il numero rappresentato in complemento a 2 è 01100110 2 = 10210
(256-154). Come binario puro è 154.
5. Si rappresenti 154 in complemento a 2 con parole di 10 bit. Qual è il
valore binario rappresentato interpretato come numero binario puro?
15410 = 100110102 . Con parole di 10 bit, però esso diventa 0010011010.
Il MSB è zero e rappresenta 154 sia in complemento a 2 che come numero
binario puro.
6. Che numero rappresenta la sequenza 11100110 di 8 bit se il sistema di
rappresentazione è complemento a 2?
Il MSC è 1, quindi è un numero negativo. Rappresenta meno 00011001 2 +
1 = 000110102 = 26, ovvero -26.
7. Che rappresentazione ha la sequenza di 8 bit in complemento a 2 11100110
se la parola viene allungata a 12 bit? E la sequenza 00010011?
Si tratta di estendere il segno: 111111100110. Infatti 11100110 rappresenta -26. Con parole di 12 bit dovremmo scrivere 26 in binario e poi farne
il complemento a due: 000000011010 diventa 111111100101+1=111111100110.
8. Si può rappresentare la sequenza di 12 bit in complemento a 2 111111001011
con 8 bit? E la il numero in complemento a 2 110111001011?
Per il primo, si vede che 111111001011 rappresenta −000000110101 2 , quindi
-53. Con 8 bit viene rappresentato con 11001011.
4
Il secondo numero rappresenta -564, che con 8 bit non può essere rappresentato. Se infatti si prendessero solo i bit meno significativi si avrebbe
11001011 che rappresenta -53.
9. Si rappresenti il numero 123 in eccesso-100 con parole di 8 bit.
100 rappresenta zero, quindi 123 è rappresentato da 123+100=223, quindi
11011111.
5