Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Numeri e aritmetica binaria Esercizi
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
Esercizio 1
Dato il numero 13710convertirlo in base 2, 4, 8, 16.
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 3 -
Esercizio 1: soluzione
Conversione a base 2 tramite l’algoritmo delle divisioni successive
13710= 100010012
Esercizio 1: soluzione
La conversione a base 4 si può fare attraverso l’algoritmo delle divisioni successive, oppure a partire dalla rappresentazione in binario.
10 00 10 012= 20214
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 5 -
Esercizio 1: soluzione
La conversione a base 8 si può fare attraverso l’algoritmo delle divisioni successive, oppure a partire dalla rappresentazione in binario.
10 001 0012= 2118
Esercizio 1: soluzione
La conversione a base 16 si può fare attraverso l’algoritmo delle divisioni successive, oppure a partire dalla rappresentazione in binario.
1000 10012= 8916
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 7 -
Esercizio 1: soluzione
Prova:
100010012 = 1*20+ 1*23+ 1*27= 1 + 8 + 128 = 137 20214 = 1*40+ 2*41+ 2*43= 1 + 8 + 128 = 137 2118 = 1*80+ 1*81+ 2*82= 1 + 8 + 128 = 137 8916 = 9*160+ 8*161= 9 + 128 = 137
Esercizio 2
Convertire in base 8 e 16 il numero 793210
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 9 -
Esercizio 2: soluzione
Conversione a base 8 e 16 tramite l’algoritmo delle divisioni successive
Esercizio 3
Convertire il numero 173748in binario
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 11 -
Esercizio 3: soluzione
173748= 001 1110111111002
Esercizio 4
Si consideri la rappresentazione in complemento a 2 su 11 bit.
Quali interi possono essere rappresentati?
Come è rappresentato -1024 ?
Qual’è il numero rappresentato da N = 11111111111 ?
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 13 -
Esercizio 4
In complemento a 2 su 11 bit possono essere rappresentati i numeri da -211-1a 211-1-1, cioè da -1024 a +1023.
-1024 corrisponde al minimo numero rappresentabile, che è sempre caratterizzato dalla presenza del termine negativo e dall’assenza di termini positivi. Quindi
10000000000 = -1*210= -1024
Esercizio 4
Nella stringa 11111111111 abbiamo il termine negativo e tutti i positivi.
Quindi il valore denotato è 20+21+22+23+24+25+26+27+28+29–210= 1+2+4+8+16+32+64+128+256+512-1024 = -110
NB: non ocorre fare la somma, perché la sommatoria delle potenze di 2 da 20a 2n= 20+ 21+ 22 + ... + 2n= 2n+1-1
Alternativamente si può calcolare il complemento a 2, che è 00000000001 = +110
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 15 -
Dimostrazione che 2
0+ 2
1+ 2
2+ ... + 2
n= 2
n+1-1
Per induzione:
20= 21-1 20+ 21= 22 -1 20+ 21+ 22 = 23 -1
Se 20+ 21+ 22 + ... + 2n= 2n+1-1
allora 20+ 21+ 22 + ... + 2n+ 2n+1= 2n+1+ 2n+1-1=2n+2-1
Esercizio 5
Convertire in base 10 il numero in complemento a 2 N = 1100101
Convertire in base 10 il numero in complemento a 2 M = 0111111
Dato il numero in complemento a 2 P = 1010011, codificare -P, sempre in complemento a 2.
Codificare il numero +13110in complemento a 2, usando il minimo numero di bit
Codificare il numero -27710in complemento a 2, usando il minimo numero di bit
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 17 -
Esercizio 5: soluzione
Convertire in base 10 il numero in complemento a 2 N = 1100101 1100101 = 20+ 22+ 25– 26= 1 + 4 + 32 – 64 = -2710
Convertire in base 10 il numero in complemento a 2 M = 0111111 0111111 = 20+ 21+ 22+ 23+ 24+ 25= 1 + 2 + 4 + 8 + 16 + 32 = +6310
Dato il numero in complemento a 2 P = 1010011 codificare -P in complemento a 2.
Complemento a 1 e incremento: 0101100 + 0000001 = 0101101 Verifica:
1010011 = 20+ 21+ 24– 26= 19 – 64 = -4510 0101101 = 20+ 22+ 23+ 25= 4510
Esercizio 5: soluzione
Codificare il numero +13110in complemento a 2, usando il minimo numero di bit
Sono necessari 9 bit, con cui si può rappresentare [-28..+28-1] = [-256..+255]
Con 8 si arriva al max a +127
Tramite algoritmo delle divisioni successive trovo la rappresentazione in binario naturale: 13110= 10000011 Su 9 bit: +13110= (0)10000011
Verifica: 20+ 21+ 27= 1 + 2 + 128 = +13110
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 19 -
Esercizio 5: soluzione
Codificare il numero -27710in complemento a 2, usando il minimo numero di bit
Sono necessari 10 bit per rappresentare [-512..+511]
La rappresentazione in cpl2 di -27710corrisponde alla rappresentazione in binario naturale i 102410-27710=74710
Tramite algoritmo divisioni successive trovo: 74710= 1011101011 747373 1
186 1 93 0 46 1 23 0 11 1 5 1 2 1 1 0 0 1
Esercizio 5: soluzione
Codificare il numero -27710in complemento a 2, usando il minimo numero di bit
Soluzone alternativa:
Tramite algoritmo divisioni successive trovo: 27710= 100010101 Aggiungo il segno +27710= (0) 100010101
Complemento e incremento: 1011101010 + 0000000001 = 1011101011
Verifica: 20+ 21+ 23+ 25+ 26+ 27– 29= 1 + 2 + 8 + 32 + 64 + 128 – 512 = -27710
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 21 -
Esercizio 6
Si consideri la rappresentazione in complemento a 2 su 4 bit sommare -5 a -4 e dire se c’e’ overflow nella somma sommare +1 a -6 e dire se c’e’ overflow nella somma sommare +1 a +6 e dire se c’e’ overflow nella somma sommare -4 a -4 e dire se c’e’ overflow nella somma
Esercizio 6: soluzione
Osservazione: in complemento a 2 su 4 bit si rappresentano i valori da -8 a +7
Sommare -5 a -4 e dire se c’e’ overflow nella somma
Anche senza effettuare la somma sappiao che ci sarà un underfow nella somma, perché -5-4 = -9, che è minore del minimo valore rappresentabile con 4 bit.
-5 = 1011, -4 = 1100 1011 +
1100 = (1)0111
overflow (e risultato è positivo e denota +7 anziché -9)
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 23 -
Esercizio 6: soluzione
Sommare +1 a +6 e dire se c’e’ overflow nella somma 0001 + 0110 = 0111
no overflow, risultato corretto
Sommare -4 a -4 e dire se c’e’ overflow nella somma -4 = 1100
1100 + 1100 = (1)1000
No overflow e risultato corretto
Esercizio 7
Dato il numero A = 1001001001 dire a quali interi in base 10 corrisponde nel caso esso rappresenti la codifica di un numero:
in valore assoluto in modulo e segno in complemento a 2
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 25 -
Esercizio 7: soluzione
A = 1001001001
Numero rappresentato in valore assoluto 1×20+ 1×23+ 1×26+ 1×29= 58510 Numero intero in modulo e segno
segno = 1 negativo
modulo = 10010012= 1×20+ 1×23+ 1×26 = 7310 A = - 7310
Numero intero in complemento a 2
A = 20+ 23+ 26 -29= 7310-51210= - 43910
Esercizio 8
Rappresentare in base 2 il numero f=0.52410con precisione migliore di 10-4
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 27 -
Esercizio 8: soluzione
Possiamo usare l’algoritmo delle moltiplcazioni successive La precisione richiesta ci indica quando fermarci
Poiche la sommatoria 2-n-1+ 2-n-2+ ... +2-n-ktende a 2-nper k
∞
,dobbiano trovare n tale che 2-nsia minore della precisione richiesta.
Nel nostro caso, 2-14= circa 6 10-5
Esercizio 8: soluzione
1 0.524 1.048 1
2 0.048 0.096 0
3 0.096 0.192 0
4 0.192 0.384 0
5 0.384 0.768 0
6 0.768 1.536 1
7 0.536 1.072 1
8 0.072 0.144 0
9 0.144 0.288 0
f= 0.10000110001001
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 29 -
Esercizio 9
Dato il numero A =+35016e il numero B = 100101C2effettuare –in complemento a 2 e sul numero di bit MINIMO per rappresentare entrambi gli operandi, non il risultato– le operazioni A+B e A-B segnalando se si verifica overflow o meno.
Dire inoltre che numeri sono A e B rappresentati nel sistema decimale.
Esercizio 9: soluzione
A = +3 5 016= 11 0101 00002= 011 0101 0000C2 B = 100101C2
Bisogna estendere B in segno per ottenere operandi rappresentati sullo stesso numero di bit:
A = 01101010000C2 B = 11111100101C2
Aritemtica binaria - Esercizi
Architettura degli elaboratori - 31 -
Esercizio 9: soluzione
Operazione A+B carry 1111
A 01101010000
B 11111100101 A+B (1)01100110101
No overflow (somma di numeri di segno opposto) Verifica:
A = +3.5.016= 3*256+5*16 = 768+80 = 84810 B = 100101C2= -32+5 = -2710
A+B= 848-27 = 821
01100110101 = 1+4+16+32+256+512 = 821
Esercizio 9: soluzione
Operazione A-B = A + (-B)
-B = 00000011010 + 1 = 00000011011 carry 1
A 01101010000
-B 00000011011 A-B 01101101011 No overflow
Verifica
A-B= 848+27 = 875
01101101011 = 1+2+8+32+64+256+512 = 875