Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri:...

30
Rappresentazione in virgola mobile 5 ottobre 2015

Transcript of Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri:...

Page 1: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Rappresentazione in virgola mobile

5 ottobre 2015

Page 2: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Punto della situazioneAbbiamo visto le rappresentazioni dei numeri:

• Sistema posizionale pesato per interi positivi (nella varie basi)

• Sistema posizionale pesato per numeri con la virgola positivi (frazioni proprie)

• Modulo e segno per interi col segno

• Complemento a 2 per interi col segno

Adesso rappresentazione in virgola mobile per numeri reali/con virgola e segno (con troncamento)

Page 3: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Numeri Reali

• Frazioni proprie

• Potrebbero essere rappresentati in binario puro

1001.1010 = 23 + 20 +2-1 + 2-3 =9.625

• Ma dove è posizionata la virgola (puntodecimale)?

• In una posizione fissata (virgola fissa)?Soluzione con molti limiti

• In una posizione mobile (virgola mobile)?Come facciamo ad indicare dove si trova?

Page 4: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 5: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Rappresentazione in Virgola Mobile (b=10)

12345.6789012345 * 100

1234.56789012345 * 101

123.456789012345 * 102

12.3456789012345 * 103

1.23456789012345 * 104

0.123456789012345 * 105

………….

12345.6789012345 * 100

123456.789012345 * 10-1

1234567.89012345 * 10-2

12345678.9012345 * 10-3

123456789.012345 * 10-4

1234567890.12345 * 10-5

…………………

Il numero 12345.6789012345 può essere scritto come:

Page 6: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Rappresentazione in Virgola Mobile (b=2)

Il numero 10111. 1101011101 può essere scritto come:

10111.1101011101 * 20

1011.11101011101 * 21

101.111101011101 * 22

10.1111101011101 * 23

1.01111101011101 * 24

0.101111101011101 * 25

……

10111.1101011101 * 20

101111.101011101 * 2-1

1011111.01011101 * 2-2

10111110.1011101 * 2-3

101111101.011101 * 2-4

1011111010.11101 * 2-5

……

Page 7: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Notazione scientifica• Notazione scientifica in base 10:

N= (-1) s M 10exp

s=segno positivo se s=0, negativo se s=1

M=Mantissa numero decimale con parte intera uguale a 0

exp = esponente opportuno (intero)Esempi: +75,221 = (-1) 0 0,75221 102

- 7522,1 = (-1) 1 0,75221 104

+0,0089= (-1) 0 0,89 10-2

• Notazione scientifica in base 2:

N= (-1) s M 2exp

s=segno positivo se s=0, negativo se s=1

M=Mantissa numero decimale con parte intera uguale a 0

exp = esponente opportuno (intero)Esempi: +11,001 = (-1) 0 0,11001 22

- 1100,1 = (-1) 1 0,11001 24

+0,0011= (-1) 0 0,11 2-2

Page 8: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Notazione scientifica normalizzataLa rappresentazione in virgola mobile che adotteremo si basa sulla notazione scientifica normalizzata

• Notazione scientifica normalizzata in base 2:

N= (-1) s M 2exp

s = segno positivo se s=0, negativo se s=1

M = Mantissa numero decimale con parte intera uguale a 1

exp = esponente opportuno (intero)

Esempi: +11,001 = (-1) 0 1,1001 21

- 1100,1 = (-1) 1 1,1001 23

+0,0011= (-1) 0 1,1 2-3

Page 9: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 10: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 11: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 12: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

• Suddivide i 32 bit (singola precisione) in:– 1 bit per il segno

– 8 bit per rappresentare l’esponente

– 23 bit per rappresentare la mantissa

Page 13: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Standard IEEE 754: segno

• Il segno è dato da (-1)s

• Analogamente alla rappresentazione in complemento a 2:

Il bit s=0 rappresenta numeri positivi

Il bit s=1 rappresenta numeri negativi

Page 14: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

singola precisione: Mantissa

Page 15: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

• Vogliamo usare gli 8 bit per rappresentare esponenti interi negativi e positivi

• Se usassimo la rappresentazione in complemento a 2, con 8 bit potremmo rappresentare: [-128, +127]

Standard IEEE 754: esponente

1 0000000 = - 27 = - 128

1 0000001 = -27 +1 = - 127………..

1 1111110 =-2

1 1111111 =-1

0 0000000 = 0

0 0000001 = +1

0 0000010 = +2….

0 1…10 = 27 – 2= +126

0 1 …11 = 27 - 1 =+127

Il confronto non risulta naturale!

Page 16: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

• Vogliamo rappresentare esponenti interi negativi e positivi

• Usiamo la rappresentazione in binario; con 8 bit potremmo rappresentare: [0, +255]

• 0 = 000000 lo riserviamo a zero• 255 = 11111111 a infinito e NaN• Gli altri interi da [1, +254] li usiamo per

rappresentare l’intervallo [-126, +127] sottraendo 127 (polarizzazione)

(per averne circa metà positivi e metà negativi)

Standard IEEE 754: polarizzazione

Page 17: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Campo esponente (8bit)

• 00000000 = 0 RISERVATO (per lo 0)

• 00000001 = 1 rappresenta 1-127 =-126

• 00000010 = 2 rappresenta 2-127 =-125

• 00000011 = 3 rappresenta 3-127=-124

• …………………

• 11111101 = +253 rappresenta 253-127=+126

• 11111110 = +254 rappresenta 254-127=+127

• 11111111 = +255 RISERVATO (ad infinito e NaN)

Page 18: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 19: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

: esempi

Page 20: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Numeri rappresentabili in FP

• Numeri positivi:

minimo: + (1, 00….00)22-126= 2-126 = 2 2-127

210 10 -38 = 0, 00…………02

Massimo: + (1, 11….11)22+127= 2(1 – 2 -24) 2+127

210 10+38 = 2 00.000. …. .000

• Numeri negativi: intervallo simmetrico

23

NOTA: 210 = 1024 103

2127 = (210 )12 27 1036 102 = 1038

Da provare!

Page 21: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Numeri Rappresentabili con 32 bit (Complemento a 2 e Virgola Mobile)

0 0.5 2-127-0.5 2-127 (1-2-24) 2128-(1-2-24) 2128

0 231-1-231

numeri rappresentabili

numeri negativi

rappresentabili

numeri positivi

rappresentabili

overflowoverflow

underflow

22-127-22-127

Page 22: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Aritmetica in virgola mobile

Page 23: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 24: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Algoritmo

La somma algebrica è più complicata!

Page 25: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 26: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 27: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 28: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale
Page 29: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Troppo difficile?

• Esiste anche la doppia precisione su 64 bit (1-11-52) (double in C)

• Non studieremo moltiplicazione e divisione• Le istruzioni MIPS che studieremo tratteranno

numeri rappresentati in complemento a 2. Per esempio: add, sub,…

• Il MIPS supporta anche il formato IEEE 754 a singola (e doppia) precisione con istruzioni particolari: Per esempio: add.s, sub.s,…

Page 30: Rappresentazione in virgola mobile - UNISA · Abbiamo visto le rappresentazioni dei numeri: •Sistema posizionale pesato per interi positivi (nella varie basi) •Sistema posizionale

Riepilogo e riferimenti

• I numeri in virgola mobile e lo standard IEEE 754 a singola precisione

• Somma in virgola mobile: [PH] par. 3.5 (fino a ‘La somma in virgola mobile’)

• Abbiamo finito le rappresentazioni dell’informazione. Dalla prossima volta: algebra di Boole e circuiti combinatorici

• Faremo un test sul programma fin qui svolto, cioè tutte le rappresentazioni e conversioni studiate.

Venerdì 9 ottobre?