Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab....

48
Arch. Elab. - S. Orlando 1 Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari Russo ing. Saverio

Transcript of Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab....

Page 1: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 1

Numeri binari Conversioni numeriche: decimali-binario Operazioni algebriche con numeri binari

Russo ing. Saverio

Page 2: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 2

Il trionfo dello ZERO

C’era una volta un povero zero

tondo come un O, tanto buono ma però contava proprio zero

e nessuno lo voleva in compagnia per non buttarsi via. Una volta per caso

trovò il numero Uno di cattivo umore perché non riusciva a contare

fino a tre. Vedendolo così nero

il piccolo zero si fece coraggio,

sulla sua macchina gli offerse un passaggio, e schiacciò l’acceleratore,

fiero assai dell’onore di avere a bordo

un simile personaggio. D’un tratto chi si vede fermo sul marciapiede?

il signor tre che si leva il cappello e fa un inchino fino al tombino

e poi, per Giove, il sette, l’otto, il nove

che fanno lo stesso.

Ma che cosa è successo?

che l’uno e lo zero seduti vicini,

uno qua l’altro là formavano un gran dieci: nientemeno, un’autorità! Da quel giorno lo zero

fu molto rispettato, anzi da tutti i numeri

ricercato e corteggiato: gli cedevano la destra con zelo e premura, (di tenerlo a sinistra

avevano paura), lo invitavano a cena,

gli pagavano il cinema, per il piccolo zero

fu la felicità.

Gianni Rodari

Il trionfo dello ZERO

Page 3: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 3

Lo Zero, usato a volte come sinonimo di Niente, è in realtà un numero speciale che merita un’attenzione particolare. E’ quella cifra, apparentemente innocua, che nasconde poteri insospettati! Separa i numeri positivi (+) e quelli negativi (–), se si trova a destra delle altre cifre ne amplifica il valore (10000… verso l’infinitamente grande), se sta alla loro sinistra le riduce con altrettanta potenza (0,00001… verso l’infinitamente piccolo). Pare che il simbolo grafico "O" derivi dalla traccia, lasciata sul terreno, una volta tolto l’oggetto che rappresentava un numero (il numero che non c’è più).

Page 4: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 4

Tabella di conversione

D b3 b2 b1 b0 O H 0 0 0 0 0 0 0 1 0 0 0 1 1 1 2 0 0 1 0 2 2 3 0 0 1 1 3 3 4 0 1 0 0 4 4 5 0 1 0 1 5 5 6 0 1 1 0 6 6 7 0 1 1 1 7 7 8 1 0 0 0 - 8 9 1 0 0 1 - 9

10 1 0 1 0 - A 11 1 0 1 1 - B 12 1 1 0 0 - C 13 1 1 0 1 - D 14 1 1 1 0 - E 15 1 1 1 1 - F

D DECIMALE B BINARIO O OTTALE

H ESADECIMALE

Page 5: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 5

Interi unsigned in base 2

• Si 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 numero rappresentato ?

• Quanti 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- 3 10….00 = 2n- 2 … 11….11 = 2n - 1 100….00 = 2n

Page 6: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 6

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 7: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 7

Peso dei numeri binari

0000 0001 = 1 2^0 0,1000 0000 = 0,5 2^- 2 0000 0010 = 2 2^1 0,0100 0000 = 0,25 2^- 4 0000 0100 = 4 2^2 0,0010 0000 = 0,125 2^- 8 0000 1000 = 8 2^3 0,0001 0000 = 0,0625 2^- 16 0001 0000 = 16 2^4 0,0000 1000 = 0,03125 2^- 32 0010 0000 = 32 2^5 0,0000 0100 = 0,015625 2^- 64 0100 0000 = 64 2^6 0,0000 0010 = 0,0078125 2^- 128 1000 0000 = 128 2^7 0,0000 0001 = 0,00390625 2^- 256

Page 8: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 8

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 9: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 9

Conversione decimale-binario

• Esercizio: 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 10: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 10

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: 10310 = ???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 ....

103 - 64 = 39 ==> 26

39 - 32 = 7 ==> 25 7 - 4 = 3 ==> 22 3 - 2 = 1 ==> 21 1 - 1 = 0 ==> 20

Allora 10310 = 26 + 25 + 22 + 21 + 20

Soluzione: 10310 = 11001112

Page 11: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 11

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 12: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 12

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 13: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 13

Possiamo introdurre le operazioni di somma, sottrazione, prodotto e divisione tra numeri in binario. Introduciamo a tale scopo la:

Addizione

0+0=0 0+1=1 1+0=1 1+1=0 con riporto di 1

Sottrazione

0−0=0 0−1=1 prestito di 1 1−0=1 1−1=0

Prodotto

0·0=0 0·1=0 1·0=0 1·1=1

Divisione

0:0 non definita 0:1=0 1:0 non definita 1:1=1

Page 14: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 14

Interi signed in complemento a 2

• Come 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) 10......00 = 2n-1 (minimo) - 2n-1 = 2n-1 - 2n ... 11......11 = 2n - 1 -1 = 2n - 1 - 2n

Dato N>0, il numero -N si rappresenta su n bit con il numero 2n - N -1 ⇒ 2n - 1 (1........1) - 2n-1 ⇒ 2n - 2n-1 = 2n-1 (10......0)

Page 15: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 15

Complemento a 2

• Esercizio: Rappresentare -3510 in complemento a 2

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

Complemento a uno

Soluzione: -3510 = 110111012

Page 16: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 16

Complemento a 2

• Esercizio: Rappresentare -35 in complemento a 2

001000112 = +3510 110111012

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

Page 17: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 17

Complemento a 2

• Esercizio: 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 18: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 18

Complemento a 2: somma e sottrazione

• Esercizio: eseguire 5310 - 3510 in complemento a due su 8 bit

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

000100102 = 1810 110111012 = 22110

Page 19: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 19

Complemento a 2: somma e sottrazione

• Esercizio: eseguire 1510 - 3810 in complemento a due su 8 bit

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

110110102 = 21810 000101112 = 2310

Page 20: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 20

Overflow

• In 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

NO NO

SI

Page 21: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 21

Esercizio

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

• Scrivere i quattro 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 22: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 22

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 23: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 23

Sottrazione con complemento a 2

Page 24: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 24

Moltiplicazione di numeri binari

Page 25: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 25

Divisione di numeri binari

Page 26: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 26

Numeri con la virgola (virgola fissa)

Data una base B, si assegnano: n cifre per rappresentare la parte intera m cifre per rappresentare la parte frazionaria In base B=2, abbiamo quindi m+n bit per parte intera e frazionazia m n Esempio: dn-1...d1d0 . d-1...d-m

Qual è il numero rappresentato in base B?

N = dn-1• Bn-1 + .... + d1• B1 + d0• B0 + d-1• B-1 + ... + d-m• B-m

Page 27: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 27

Virgola fissa

Esercizio: 23.62510 = ???2 (usare la rappresentazione in virgola fissa con n=8, m=8)

Conversione parte intera: 23 : 2 = 11 resto 1 11 : 2 = 5 resto 1 5 : 2 = 2 resto 1 2 : 2 = 1 resto 0 1 : 2 = 0 resto 1

Conversione parte frazionaria: 0.625 x 2 = 1.25 parte intera 1 0.25 x 2 = 0.50 parte intera 0 0.50 x 2 = 1 parte intera 1

Soluzione: 23.62510 = 00010111.101000002

Page 28: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 28

Numeri con virgola mobile

• Un numero reale R può essere scritto in base B come R = ± m • Be m = mantissa e = esponente B = base

• Esempi con B = 10 – R1 = 3.1569 x 103 – R2 = 2054.00035 x 10-6 – R3 = 0.1635 x 102 – R4 = 0.0091 x 10-12

• Notazione scientifica: m = 0 . d-1...d-k • Notazione scientifica normalizzata: m = d0 . d-1...d-k con d0 ≠ 0

Page 29: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 29

Numeri binari in virgola mobile Rappresentando mantissa ed esponente in binario in notazione scientifica normalizzata si ottengono numeri del tipo: ±1. ss....s • 2yy...y

Si osservi che: Spostare la virgola (punto) a destra di n bit significa decrementare di n l’esponente es: 0.01 • 23 = 1.0 • 21 Infatti 1 • 2-2 • 23 = 1 • 21

Spostare la virgola (punto) a sinistra di n bit significa incrementare di n l’esponente es: 100.011 • 23 = 1.00011 • 25 Infatti (1• 22 + 1• 2-2 + 1• 2-3) • 23 = (1• 20 + 1• 2-4 + 1• 2-5) • 25

25 + 21 + 20 = 25 + 21 + 20

Page 30: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 30

Numeri FP

• Esercizio: 1010 = ???2 FP

• Esercizio: 151.2510 = ???2 FP

1010 = 10102 = 1010.02 • 20 = 1.01 • 23

15110 = 128 + 16 + 4 + 2 + 1 = 100101112 0.2510 x 2 = 0.5010 parte intera 0 0.5010 x 2 = 110 parte intera 1 0.2510 = 0.012 Quindi = 151.2510 = 10010111.012 = 1.0010111012 • 27

Page 31: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 31

Numeri FP

Una volta fissato il numero di bit totali per la rappresentazione dei numeri razionali rimane da decidere Quanti bit assegnare per la mantissa ? (maggiore è il numero di bit e maggiore è l’accuratezza con cui si riescono a rappresentare i numeri) Quanti bit assegnare per l’esponente ? (aumentando i bit si aumenta l’intervallo dei numeri rappresentabili) OVERFLOW: si ha quando l’esponente positivo è troppo grande per poter essere rappresentato con il numero di bit assegnato all’esponente UNDERFLOW: si ha quando l’esponente negativo è troppo grande (in valore assoluto) per poter essere rappresentato con il numero di bit assegnato all’esponente

Page 32: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 32

Numeri reali

• Rappresentazione di un insieme continuo • Fissata una base b, un numero x è rappresentato dalla coppia:

( m , e ) tale che:

x = m * b^e Il metodo prende il nome di codifica in virgola mobile

m viene detto mantissa, e viene detto esponente

Page 33: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 33

Normalizzazione

Per ogni numero esistono infinite coppie che lo rappresentano. Esempio (b = 10):

346,09801 è rappresentato da ( 346,09801 , 0 ) oppure ( 346098,01 , -3 ) oppure

( 0,034609801 , 4 ) … ecc. Si fissa la posizione della virgola rispetto alla prima cifra significativa (di solito subito dopo) Unico rappresentante: ( 3,4609801 , 2 )

+ sinistra < virgola > destra -

Page 34: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 34

Intervallo di rappresentazione

Esempio con b = 10, usando 4 cifre per m e 2 per e (esclusi i segni), l’insieme rappresentato è:

[ -9.999*10^99 , -1.000*10^-99 ] U { 0 } U

[ +1.000*10^-99 , +9.999*10^99 ]

0

-1*10^-99 1*10^-99 9,999*10^99 -9,999*10^99

Page 35: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 35

Limitazione dell’intervallo

Overflow: il numero è troppo grande per essere rappresentato Underflow: il numero è troppo piccolo per essere rappresentato Underflow graduale: se il numero diventa piccolo, diminuisce il numero di cifre della mantissa. esempio: 1.234 • 10^Emin 1.234 • 10^Emin / 10 => 0.123 • 10^Emin 0.123 • 10^Emin / 10 => 0.012 • 10^Emin 0.012 • 10^Emin / 10 => 0.001 • 10^Emin 0.001 • 10^Emin / 10 => 0.000 • 10^Emin

Page 36: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 36

Numeri floating point

Forma: Arbitraria 363,4 * 10^34 Normalizzata 3,634 • 10^36 Notazione binaria Normalizzata 1.xxx • 2^yy Forma standardizzata : IEEE 754 • Singola precisione 8 bit esponente, 23 bit mantissa • Doppia precisione 11 bit esponente, 52 bit mantissa

Page 37: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 37

Standard IEEE 754

Il bit '1' bit più significativo della mantissa è implicito si risparmia 1 bit Esponente è biased (polarizzato), per avere numeri sempre positivi: 00...000 esponente minimo 1 1...1 1 1 esponente massimo Bias 127 per singola precisione, 1023 per doppia precisione Esempio di esponente biased (semplice precisione) : se gli 8 bit dell’esponente biased contengono 10100011 = 163 allora l’esponente vale: 163-127 = 36 se gli 8 bit dell’esponente biased contengono 00100111 = 39 allora l’esponente vale: 39-127 = -88

Valore -> (-1)segno * (1 + mantissa) * 2^(esponente_biased – bias)

Page 38: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 38

Esempio 1

Rappresentazione in semplice precisione di: - 0.75 rappresentazione decimale: - 0.75 = - 3/4 = - 3 / 22 rappresentazione binaria: -11 * 2^2 = - 0,11 = - 1,1 • 2^-1 Floating point: bit segno: = 1 mantissa: = 1 + ,1000..... esponente biased: = (-1 + 127) = 126 0 1 1 1 1 1 1 0

100 0000 0000 0000 0000 0000 01111110 1 segno esponente biased mantissa

Page 39: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 39

Esempio 2

Esercizio 1. 1) Dati due numeri decimali A=0,546875 e B=2,1875. Fornire la codifica completa in virgola mobile a singola precisione di A e

B. 2 )Effettuare la somma A+B

Page 40: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 40

Soluzione Esempio 2 – pag.1

Devo codificare in singola precisione i due numeri. Codifico separatamente la parte intera e la parte decimale.

A: I=0 codifica=0 (intero) D=0,546875 Per la parte decimale, invece che fare la divisione per 2, moltiplico per 2. Se il risultato

supera 1.0, l'uno viene messo nella colonna di sinistra e entra nella mantissa: |546875 -> 0,546886*2= 1,09375 1 + 0,09375 1|093750 0|187500 0|375000 0|750000 1|500000 1|000000 e la mantissa si legge dall'alto verso il basso. Il numero (I.D) risulta: 0,100011, che normalizzato diventa: 1.00011 x 2-1 Segno: 0 Esponente: -1 + 127 = 126 = 01111110 Mantissa: 000011 (ricordarsi di eliminare il bit nascosto)

Page 41: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 41

Soluzione esempio 2 – pag.2

B: Si procede in modo analogo: I=2 codifica 10 D=0,1875 |1875 0|3750 0|7500 1|5000 1|0000 Parte decimale =0011 Il numero risulta: 10.0011, che normalizzato diventa: 1.00011 x 2+1 Segno: 0 Esponente: +1 + 127 = 128 = 10000000 Mantissa: 00011 (ricordarsi di eliminare il bit nascosto) A: 0 01111110 0000110000.... B: 0 10000000 0001100000....

Page 42: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 42

Soluzione esempio 2 – pag.3

• A: 0 01111110 0000110000.... • B: 0 10000000 0001100000....

• Ora per sommarli devo portarli ad avere lo stesso esponente: A: -1 B: +1 B ha esponente più grande, quindi traslo A: 1.00011 x 2-1 0.0100011 x 2+1 Ora posso sommare i due numeri dato che hanno lo stesso esponente, considerando (per B) anche il bit nascosto: A 0.0100011 B 1.0001100 ---------------- 1.0101111 Il risultato quindi sarà: 0 10000000 0101111000000

Page 43: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 43

Soluzione esempio 2 - pag.4

Cioè: Esponente: 10000000 -> 128 -> exp = 128-127 = 1 Numero: 1.0101111 (riaggiungo il bit nascosto) 1.0101111 x 2^1 = 10.101111 Che, riconvertendo parte intera e parte decimale separatamente diventa: 2.734375 che è il risultato di 0.546875+2.1875

Page 44: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 44

Standard IEEE 754 (1985)

Semplice precisione a 32 bit

MANTISSA ESPONENTE SEGNO 1 8 23

MANTISSA ESPONENTE SEGNO 1 11 52

Semplice precisione a 64 bit

Page 45: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 45

Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.010 • 2-38 ÷ 2.010 • 238

Standard IEEE754: Doppia precisione (64 bit) si riescono a rappresentare numeri 2.010 • 2-308 ÷ 2.010 • 2308

Numeri FP in standard IEEE 724

Page 46: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 46

Esempio 3

Convertire il numero (-23,375)D in un numero binario in virgola mobile in singola precisione secondo lo standard IEEE-P754.

Soluzione: Si converta separatamente parte intera e parte frazionaria per ottenere:

23,375D => 10111,011B In forma normalizzata con bit nascosto:

10111,011 = 1.0111011 * 2^4 Per cui la mantissa risulta:

M = 0111011000 …….. Per l’esponente in eccesso 127 si ottiene:

E = 4 + 127 = 131D => 10000011B Per il segno:

S = 1 Il numero completo risulta:

1 10000011 0111011000 …….B => C1BB0000 H

Page 47: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 47

Esempio 4

Esprimere i seguenti numeri decimali in una rappresentazione binaria su 8 bit con eccesso 127:

0; +5; -51; +126. Soluzione: 0 + 127 = 127D => 01111111B

5 + 127 = 132D => 10000100B -51 + 127 = 76D => 01001100B 126 + 127 = 253D => 11111101B

Page 48: Numeri binari Conversioni numeriche: decimali-binario Operazioni … · 2012-11-26 · Arch. Elab. - S. Orlando 2 . Il trionfo dello ZERO C’era una volta un povero zero tondo come

Arch. Elab. - S. Orlando 48

Esempio 5

Sia dato il seguente numero binario in virgola mobile in singola precisione secondo lo standard IEEE-P754, espresso per comodità in formato esadecimale BE900000H. Calcolarne il valore decimale.

Soluzione: Il numero trascritto in binario diventa:

BE900000H => 1011111010010000 ……….B

Segno : S = 1 => negativo Esponente : E = 01111101B => 125D Mantissa : M = 001 Il numero decimale vale:

-1.M 2^(125-127) = -1,001*2^-2 = 0,01001 => - (1 * 2^-2 + 1 *2^-5) = -0,28125