Es vari

annuncio pubblicitario
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
[email protected]
Esercizio 1
Dato il numero 13710 convertirlo in base 2, 4, 8, 16.
Architettura degli elaboratori
-2-
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
1
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 1: soluzione
Conversione a base 2 tramite l’algoritmo delle divisioni successive
13710 = 100010012
Architettura degli elaboratori
-3-
Aritemtica binaria - Esercizi
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
Architettura degli elaboratori
-4-
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
2
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
-5-
Aritemtica binaria - Esercizi
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
Architettura degli elaboratori
-6-
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
3
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
-7-
Aritemtica binaria - Esercizi
Esercizio 2
Convertire in base 8 e 16 il numero 793210
Architettura degli elaboratori
-8-
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
4
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 2: soluzione
Conversione a base 8 e 16 tramite l’algoritmo delle divisioni successive
Architettura degli elaboratori
-9-
Aritemtica binaria - Esercizi
Esercizio 3
Convertire il numero 173748 in binario
Architettura degli elaboratori
- 10 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
5
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 3: soluzione
173748 = 001 111 011 111 1002
Architettura degli elaboratori
- 11 -
Aritemtica binaria - Esercizi
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 ?
Architettura degli elaboratori
- 12 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
6
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 4
In complemento a 2 su 11 bit possono essere rappresentati i numeri
da -211-1 a 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
Architettura degli elaboratori
- 13 -
Aritemtica binaria - Esercizi
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 20 a 2n = 20 + 21 + 22 + ... + 2n = 2n+1-1
Alternativamente si può calcolare il complemento a 2, che è
00000000001 = +110
Architettura degli elaboratori
- 14 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
7
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Dimostrazione che 20 + 21 + 22 + ... + 2n = 2n+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
Architettura degli elaboratori
- 15 -
Aritemtica binaria - Esercizi
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 +13110 in complemento a 2, usando il minimo
numero di bit
Codificare il numero -27710 in complemento a 2, usando il minimo
numero di bit
Architettura degli elaboratori
- 16 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
8
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
- 17 -
Aritemtica binaria - Esercizi
Esercizio 5: soluzione
Codificare il numero +13110 in 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
Architettura degli elaboratori
- 18 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
9
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 5: soluzione
Codificare il numero -27710 in complemento a 2, usando il minimo
numero di bit
Sono necessari 10 bit per rappresentare [-512..+511]
La rappresentazione in cpl2 di -27710 corrisponde alla
rappresentazione in binario naturale i 102410-27710=74710
Tramite algoritmo divisioni successive trovo: 74710 = 1011101011
747
373
1
186
1
93
0
46
1
23
0
11
1
5
1
2
1
1
0
0
1
Architettura degli elaboratori
- 19 -
Aritemtica binaria - Esercizi
Esercizio 5: soluzione
Codificare il numero -27710 in 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
Architettura degli elaboratori
- 20 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
10
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
- 21 -
Aritemtica binaria - Esercizi
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)
Sommare +1 a -6 e dire se c’e’ overflow nella somma
no overflow (operandi di segno diverso)
0001+1010=1011 che correttamente denota -8+3, cioè -5
Architettura degli elaboratori
- 22 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
11
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
- 23 -
Aritemtica binaria - Esercizi
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
Architettura degli elaboratori
- 24 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
12
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
- 25 -
Aritemtica binaria - Esercizi
Esercizio 8
Rappresentare in base 2 il numero f=0.52410 con precisione migliore di
10-4
Architettura degli elaboratori
- 26 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
13
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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-k tende a 2-n per k  ∞,
dobbiano trovare n tale che 2-n sia minore della precisione richiesta.
Nel nostro caso, 2-14 = circa 6 10-5
Architettura degli elaboratori
Aritemtica binaria - Esercizi
- 27 -
Esercizio 8: soluzione
1
0.524
1.048
1
3
0.096
0.192
0
2
4
5
6
7
8
9
10
0.048
0.192
0.384
0.768
0.536
0.072
0.144
0.288
0.096
0.384
0.768
1.536
1.072
0.144
0.288
0
1
0.608
0.608
0
1.216
0.304
14
1
0
13
Architettura degli elaboratori
1
0.304
1.152
f= 0.10000110001001
0
0
0.576
0.152
0
0.576
11
12
0
1
0
- 28 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
14
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Esercizio 9
Dato il numero A =+35016 e il numero B = 100101C2 effettuare –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.
Architettura degli elaboratori
- 29 -
Aritemtica binaria - Esercizi
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
Architettura degli elaboratori
- 30 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
15
A.A. 2016/17
Marco Tarini - Università dell'Insubria
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
Architettura degli elaboratori
- 31 -
Aritemtica binaria - Esercizi
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
Architettura degli elaboratori
- 32 -
Aritemtica binaria - Esercizi
Architettura degli elaboratori - Numeri e Aritmetica binaria - Esercizi
16
Scarica