Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... ·...

24
Architettura degli Elaboratori 1 Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori slide a cura di Salvatore Orlando & Marta Simeoni

Transcript of Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... ·...

Page 1: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 1

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

slide a cura di Salvatore Orlando & Marta Simeoni

Page 2: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 2

Interi unsigned in base 2Si utilizza un alfabeto binario A = {0,1}, dove 0 corrisponde al numero zero, e 1 corrisponde al numero uno

dn-1...d1d0 con di di ∈ {0,1}

Qual è il valore rappresentato ?

Quanti e quali numeri sono rappresentabili su n bit?

N = dn-1• 2n-1 + .... + d1• 21 + d0• 20

Con sequenze di n bit sono rappresentabili 2n numeri naturali (da 0 a 2n-1)

00….00 = 0 00….01 = 1 00….10 = 2 … 01….11 = 2n-1- 1 10….00 = 2n-1 … 11….11 = 2n - 1 100….00 = 2n

Page 3: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 3

Interi unsigned in base 2

I seguenti numeri naturali sono rappresentabili usando il numero di bit specificato ?

2010 su 5 bit ? 6410 su 6 bit ? 50010 su 9 bit ? 102510 su 10 bit ?

SI

SI NO

NO

Ricorda che: 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 ....

Page 4: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 4

Conversione binario-decimale

Esercizio: 11101012 = ???10

1·26 + 1·25 + 1·24 + 0·23 + 1·22 + 0·21 + 1·20 = 64 + 32 + 16 + 0 + 4 + 0 + 1 Soluzione: 11101012 = 11710

Page 5: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 5

Conversione decimale-binarioEsercizio: 10010 = ???2

100 : 2 = 50 resto 0 50 : 2 = 25 resto 0 25 : 2 = 12 resto 1 12 : 2 = 6 resto 0 6 : 2 = 3 resto 0 3 : 2 = 1 resto 1 1 : 2 = 0 resto 1

Soluzione: 10010 = 11001002

Page 6: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 6

Conversione dec-bin: metodo più pratico

Scriviamo direttamente il numero decimale come somma di potenze di 2. Per far questo, sottraiamo via via le potenze di 2, a partire dalle più significative.

Esercizio: 12310 = ???2

Ricorda che: 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 26 = 64 27 = 128 28 = 256 29 = 512 210 = 1024 ....

123 - 64 = 59 ==> 26

59 - 32 = 27 ==> 25

27 - 16 = 11 ==> 24 11 - 8 = 3 ==> 23 3 - 2 = 1 ==> 21 1 - 1 = 0 ==> 20

Allora 12310 = 26 + 25 + 24 + 23 + 21 + 20

Soluzione: 12310 = 11110112

Page 7: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 7

Conversione binario-ottale e viceversa

Esercizio: 101011112 = ???8

Esercizio: 6358 = ???2

10 101 111 2 5 7

Soluzione: 101011112 = 2578

6 3 5 110 011 101

Soluzione: 6358 = 1100111018

Page 8: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 8

Base 16Quali dei seguenti numeri esadecimali sono numeri sono corretti?

BED CAR 938 DEAD BEBE A129 ACI DECADE BAG DAD 4H3

Page 9: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 9

Conversione binario-esadecimale e viceversa

Esercizio: 1011111011012 = ???16

Esercizio: A3C916 = ???2

Ricorda che: 110 = 116 = 00012

210 = 216 = 00102 ...... 910 = 916 = 10012 1010 = A16 = 10102 1110 = B16 = 10112 1210 = C16 = 11002 1310 = D16 = 11012 1410 = E16 = 11102 1510 = F16 = 11112

1011 1110 1101

B E D

A 3 C 9 1010 0011 1100 1001

Soluzione: 1011111011012 = BED16 = 305310

Soluzione: A3C916 = 10100011110010012 = 4192910

Page 10: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 10

Interi signed in complemento a 2Come si riconosce un numero positivo da uno negativo?

–  Positivo ⇒ bit più significativo 0–  Negativo ⇒ bit più significativo 1

Su n bit sono rappresentabili 2n interi unsigned (da 0 a 2n-1)Sempre su n bit, quanti interi signed in complemento a 2 ?

0.......00 = 0 0.......01 = 1 ... 01......11 = 2n-1-1 (massimo pos.) 10......00 = -2n-1 (minimo neg.) ... 11......11 = -1

in totale sempre 2n numeri

Page 11: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 11

Interi signed in complemento a 2Dato N>0, il numero -N si rappresenta su n bit con il numero unsigned 2n - N -1 ⇒ 2n - 1 (1........1) - 2n-1 ⇒ 2n - 2n-1 = 2n-1 (10......0) Esempio su 5 bit: rappresentare N = -15

N = 25 – 15 = 32 -15 = 17 = 10001

Data la rappresentazione di un numero negativo in complemento a due su n bit, il valore corrispondente si determina assegnando - peso negativo al bit di segno (-2n-1) - peso positivo a tutti gli altri bit

Esempio su 5 bit: 10011 = -24 + 21 + 20 = -13

Page 12: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 12

Complemento a 2: cambio di segnoEsercizio: Rappresentare -3510 in complemento a 2 su 8 bit

001000112 = +3510 11011100 + 1 = ------------ 11011101

Complemento a uno

Soluzione: -3510 = 110111012

Page 13: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 13

Complemento a 2: cambio di segnoEsercizio: Rappresentare -35 in complemento a 2 su 8 bit

001000112 = +3510 110111012

Inverti (complementa a 1) tutti i bit a sinistra del bit “1” meno significativo

Page 14: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 14

Complemento a 2: cambio di segnoEsercizio: Quale numero decimale rappresenta il seguente numero binario in complemento a due?

1111 1111 1111 1111 1111 1110 0000 11002

0000 0000 0000 0000 0000 0001 1111 01002 = 22 + 24 + 25 + 26 + 27 + 28 = 50010

Soluzione: il numero è -50010

Page 15: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 15

Complemento a 2: somma e sottrazioneEsercizio: eseguire 5310 - 3510 in complemento a due su 8 bit

3510 = 001000112 opposto: - 3510 = 110111012 11111101 5310 - 5310 + 001101012 + 3510 = (-35)10 = 110111012 = _______ ⇒ _________ ⇒________ 1810 1810 (1000100102) mod 28

000100102 = 1810

Page 16: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 16

Complemento a 2: somma e sottrazioneEsercizio: eseguire 1510 - 3810 in complemento a due su 8 bit

3810 = 001001102 opposto: - 3810 = 110110102

00011110 1510 - 1510 + 000011112 + 3810 = (-38)10 = 110110102 = _______ ⇒ _________ ⇒________ -2310 -2310 (0111010012) mod 28

000101112 = 2310

Page 17: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 17

Complemento a due: OverflowIn quali dei seguenti casi si può ottenere overflow?

–  somma di due numeri con segno concorde? –  somma di due numeri con segno discorde? –  sottrazione di due numeri con segno concorde? –  sottrazione di due numeri con segno discorde?

SI

NONO

SI

Page 18: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 18

Complemento a due: come scoprire l’overflow

Primo caso: somma algebrica di due numeri positivi A e B. Si ha overflow se A+B>=2n-1, ovvero se A+B non può essere rappresentata su n bit in complemento a due.

Esempi: A=01111 B=00001 (OVERFLOW ⇒ due ultimi riporti discordi)A=01100 B=00001 (NON OVERFLOW ⇒ due ultimi riporti concordi) 01 00 01111+ 01100+ 00001= 00001= 10000 01101

Page 19: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 19

Complemento a due: come scoprire l’overflowSecondo caso:

somma algebrica di due numeri negativi A e B. Si ha overflow se |A|+|B|>2n-1, ovvero se |A|+|B| non può essere rappresentata su n bit in complemento a due.

Esempi: A=10100 B=10101 (OVERFLOW ⇒ due ultimi riporti discordi)A=10111 B=11101 (NON OVERFLOW ⇒ due ultimi riporti concordi) 10 11 10100+ 10111+ 10101= 11101= 01001 10100

Page 20: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 20

EsercizioConsiderate i numeri esadecimali x1 = 7A x2 = 13 x3 = FF x4 = C1 x5 = 84

Scrivere i cinque numeri in codice binario a 8 bit

Interpretare il codice binario in complemento a due ed eseguire le operazioni x1- x2; x3 + x4; x4 + x5; x4 - x1

x1 = 0111 1010 x2 = 0001 0011 x3 = 1111 1111

x4 = 1100 0001 x5 = 1000 0100

11111000 x1 01111010 + -x2 11101101 = _____________ (101100111) mod 28 = 01100111 overflow?

Page 21: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 21

Esercizio (continua)

11111111 x3 11111111 + x4 11000001 = ___________ (111000000) mod 28 = 11000000 overflow?

10000000 x4 11000001 + x5 10000100 = ___________ (101000101) mod 28 = 01000101 overflow?

10000000 x4 11000001 + -x1 10000110 = ___________ (101000111) mod 28 = 01000111 overflow?

Page 22: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 22

Esercizio - caso particolareSi ricorda che l’opposto del numero negativo più piccolo su n bit non può essere rappresentato in complemento a due

–  codifica non simmetrica

Supponiamo quindi:–  di lavorare con rappresentazioni in complemento a due su 3 bit–  di dover effettuare la sottrazione x-y

dove y=1002 è il minimo numero rappresentabile (y=-410)

Esercizio: calcolare x-y usando il solito algoritmo, dove x=0012

000 X 001 +-Y 100 ______ (0101) mod 23 = 101 OVERFLOW, anche se riporti concordi !!Abbiamo infatti sottratto un numero negativo da un numero >= 0 ⇒ il segno atteso è positivo

Il complemento a due non ha effetto

Page 23: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 23

Esercizio - caso particolare (continua)Esercizio: calcolare x-y, dove x=1112

–  poiché x=1112 allora x = -110–  non dovremmo avere overflow, poiché vogliamo effettuare la

somma algebrica di due numeri con segno discorde–  il risultato da ottenere è x-y=-110- (-410) = 310

100 X 111 +-Y 100 ______ (1011) mod 23 = 011 = 310 NO OVERFLOW , anche

se riporti discordi !!

Abbiamo infatti sottratto un numero negativo da un numero negativo ⇒ in questo caso non si può verificare overflow

corretto

Il complemento a due non ha effetto

Page 24: Esercitazioni su rappresentazione dei numeri e aritmetica dei …architet/lezioni/03_ese... · 2018. 10. 11. · Architettura degli Elaboratori 22 Esercizio - caso particolare Si

Architettura degli Elaboratori 24

Procedura generale per determinare l’OVERFLOW

Operazione Segno 1o operando

Segno 2o operando

Segno atteso

Somma Somma Somma Somma

+ + - - -

+ - qualsiasi

qualsiasi -

+ +

Sottrazione Sottrazione Sottrazione Sottrazione

+ + - - -

+ - +

- qualsiasi

+ qualsiasi

Solo in questicasi si può verificare un OVERFLOW.

Possiamo controllarloconfrontandoil bit di segno del risultato con il segno atteso.

Alla luce dell’esempio precedente, guardare solo ai due ultimi riporti per controllare l’OVERFLOW potrebbe quindi portare a risultati erronei