RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La...

30
M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 1 R R A A P P P P R R E E S S E E N N T T A A Z Z I I O O N N E E D D I I N N U U M M E E R R I I R R E E A A L L I I Rappresentazione in virgola fissa Rappresentazione in virgola mobile (floating point) 2 modalità

Transcript of RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La...

Page 1: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 1

RRAAPPPPRREESSEENNTTAAZZIIOONNEE DDII NNUUMMEERRII RREEAALLII

Rappresentazione in virgola fissa

Rappresentazione in virgola mobile (floating point)

2 modalità

Page 2: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 2

Rappresentazione in virgola fissa

Parte intera Parte frazionaria nI bit nF bit

Esempio

Peso Ferrari F-2003 GA: ≈ 600 kg ≈ 219 grammi 10000000000000000000 [parte intera: 20 bit]

Peso molecola di CO2: ≈ 10-23 grammi ≈ 2-80 grammi 0.000000 … … … … … … 1 [parte frazionaria: 80 bit]

⇒⇒⇒⇒ Spreco dei bit disponibili: la precisione dovrebbe

essere funzione dell'ordine di grandezza!

Page 3: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 3

Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera Parte frazionaria

0 0 0 0 0 0 0 1 nI bit . nF bit

Per un qualsiasi numero I.F, il numero successivo è I.F + 2−−−−

⇒ la granularità è fissa e pari a 2−−−−

(nell’esempio, 2-8)

nF

nF

Page 4: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 4

Rappresentazione in virgola mobile (floating point) sM sE mantissa (|m|) esponente (|e|) nM bit nE bit

⇒ N = m*2e Forma normalizzata: Stesso numero 0.12: 1*2-1 10*2-2 … ⇒ si stabilisce una forma univoca di rappresentazione

Page 5: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 5

Rappresentazione della mantissa Prima cifra significativa diversa da 0 alla destra del punto di radice 1: senza hidden bit

0.1xxxxxxxx *2e 2: con hidden bit

0.1xxxxxxxx *2e

Page 6: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 6

Prima cifra significativa diversa da 0 alla sinistra del punto di radice 3: senza hidden bit

1.xxxxxxxxx * 2e 4: con hidden bit

1.xxxxxxxxx * 2e

Page 7: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 7

Rappresentazione dell’esponente Sono possibili tutte le rappresentazioni di valori interi relativi:

• Modulo e segno

• Complemento a due

• Complemento a uno

• Con polarizzazione o “eccesso”

Page 8: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 8

Rappresentazione di numeri relativi con polarizzazione

nE bit

y 0 ≤ y ≤ 2 -1 Rappresento il numero aggiungendovi una costante P (polarizzazione o “eccesso”) y = e + P (tipicamente P = 2 -1 o P = 2 -1 – 1) ⇒ negativi rappresentati come positivi

esponentevalore rappresentato

nEnE

nE

Page 9: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 9

Esempio: nE=5, P = 24-1 = 15 00000 00001 … 01111 …. 11110 11111

-15 -14 … 0 …. 15 16

y= e + P ⇒ e= y - P

Page 10: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 10

Esempio: Il formato floating point standard IEEE P754 (precisione semplice)

Mantissa: 23 bit, prima cifra sign. alla sx, hidden bit

Esponente: 8 bit, eccesso 127

N = (-1)S * 2(Y – 127) * 1.x

s y x

31 30 22 0(8 bit) (23 bit)

Page 11: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 11

Mantissa normalizzata: ± (s) 1. 23 bit di rappresentazione per la mantissa (y) 0: segno + 1: segno - Esponente: X

Rappresentazione in 8 bit a eccesso 127 (127 = 2n-1 -1), con le configurazioni 00000000 e 11111111 non ammesse! x= e + 127 ⇒ e = x -127 (-126 ≤ e ≤ 127)

HIDDEN BIT

Page 12: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 12

Esercizio (Appello del 23 set 2003) Definire il concetto di polarizzazione dell’esponente nella codifica IEEE 754 dei numeri in virgola mobile (singola precisione). Se il campo esponente di una codifica contiene il numero 00111011 qual è il valore decimale dell’esponente? [2] Soluzione y = e + 127 valori rappresentabili da –127 a +128 (NB: gli estremi non sono utilizzati propriamente) Nel caso specifico: y = 1+2+8+16+32= 59 quindi e = 59-127 = -68

Page 13: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 13

Esercizio (Appello del 7 gen 2003) Ricavare il valore decimale del seguente numero in virgola mobile rappresentato secondo lo standard IEEE 754 a 32 bit: [3]

0 10000000 10000000000000000000000 Soluzione Segno: + Esponente: y = 27 = 128 e = 128-127=1 Mantissa: m = 1.1 ⇒ N = 1.12 * 21 = 112 = 310

Page 14: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 14

Esercizio (Appello del 5 feb 2001) Utilizzando la rappresentazione standard IEEE per numeri floating point su 32 bit, si determini il valore decimale della sequenza di bit corrispondente a 3F400000 in base 16. [2] Soluzione Notazione binaria: 0011 1111 0100 0000 0000 0000 0000 0000 segno: + esponente: y = 01111102 = 126 e = 126-127 = - 1

⇒ N = 1.1 * 2-1 = 0.112 = 2-1 + 2-2 = 0.5 + 0.25 = 0.75

Page 15: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 15

Esercizio Rappresentare il numero decimale –4.5 secondo lo standard in virgola mobile IEEE 754 a 32 bit. Soluzione Segno: 1 Rapp. binaria: 4.510 = 100.12 Forma normalizzata: N = 1.001 * 22 Esponente: e = 2 ⇒ y = 2+127 = 12910 = 10000001

⇒ IEEE754: 1 10000001 0010……0

Page 16: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 16

PASSAGGIO IMPORTANTE: normalizzazione ES. 1

Rappresentazione binaria: 1001.01001 = 1.00101001 * 23 (forma normalizzata)

ES. 2 Rappresentazione binaria:

0.001011 = 1.011 * 2-3 (forma normalizzata)

Page 17: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 17

PER ESERCITARSI…

http://www.h-schmidt.net/FloatApplet/IEEE754.html Convertitore (on line) tra:

• IEEE754 • Binario • Decimale • Esadecimale

E’ sufficiente inserire un valore in una delle precedenti rappresentazioni per ottenere i valori delle altre tre.

Page 18: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 18

Esercizio Si consideri la seguente rappresentazione floating point:

1 bit per il segno 4 bit per l’esponente in complemento a due 19 bit per mantissa, normalizzata con 1A cifra ≠0 a dx del punto

Rappresentare –20.02510 Soluzione Formato: s yyyy xxxxxxxxxx con mantissa 0.1 … … … Rappresentazione binaria:

2010 = 101002

0.025 = …

Page 19: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 19

0.025

0.05 0

0.1 0 0.025 = 0.0000011

0.2 0

0.4 0

0.8 0

1.6 1

1.2 1

Page 20: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 20

20.025 = 10100.0000011

Forma norm: = 0.101000000011 * 25

Esponente: 510 = 0101 già espressa in compl. a due

Segno: -

⇒⇒⇒⇒ Rappresentazione Floating Point:

1 0101 1010000000110011001

Page 21: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 21

Esercizio

Si consideri la seguente rappresentazione floating point: 1 bit per il segno 5 bit per l’esponente in complemento a due 15 bit per mantissa, normalizzata con 1A cifra ≠0 a sx del punto di

radice con hidden bit Rappresentare -351.534410

Soluzione

Formato: s yyyyy xxxxxxxxxxxxxxx con mantissa 1.xxx…xxx

Rappresentazione binaria del valore assoluto:

Page 22: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 22

351 = 101011111

0.5344

1.0688 1

0.1376 0

0.2752 0

0.5504 0

1.1008 1

0.2016 0

0.4032 0

quanto dobbiamo andare avanti? La forma normalizzata sarà

1.01011111 + altri 7 bit per arrivare a 15

7 bit

Page 23: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 23

Rappresentazione normalizzata:

351.534410 = 101011111.1000100 =

1.010111111000100 * 28

Esponente: 810 = 01000 (già in compl. a 2 con 5 bit)

Segno: -

Rappresentazione Floating Point:

1 01000 010111111000100

Page 24: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 24

Esercizio

Si consideri la seguente rappresentazione floating point: 1 bit per il segno 5 bit per l’esponente in complemento a due 16 bit per la mantissa, normalizzata con 1A cifra ≠0 a sx del punto

di radice senza hidden bit Rappresentare 1330.46318 (in base 8) Soluzione

Forma normalizzata del tipo 1.xxxxxxxxxxxxxxx

Rappresentazione binaria:

001 011 011 000 . 100 110 011 001 … (mi bastano 16 bit)

Page 25: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 25

Forma normalizzata:

001 011 011 000 . 100 110 011 011 =

1.011011000100110 * 29

Esponente: 910 = 01001 già in complemento a due con 5 bit

Segno: +

⇒ Rappresentazione floating point:

0 01001 1011011000100110

Page 26: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 26

Esercizio

Si consideri la seguente rappresentazione floating point: 1 bit per il segno 4 bit per l’esponente in eccesso 2m-1 7 bit per la mantissa, normalizzata con 1A cifra ≠0 a dx del punto

di radice con hidden bit Trovare il numero decimale corrispondente alla rappresentazione 111001011000

Page 27: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 27

Soluzione 1 - 1100 – 1011000 Segno: - Esponente: 11002 = 12 in eccesso 24-1 = 8 ⇒ y = e + P ⇒ e = y-P = 12 – 8 = 4 mantissa : 0.11011000

⇒⇒⇒⇒ Numero rappresentato :

N = - 0.11011000 * 24

= - 1101.12 = 13.5

Page 28: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 28

Limiti della capacità di rappresentazione floating point nE : numero di bit per l'esponente, nM : numero di bit per la mantissa

Numero massimo rappresentabile = + MaxMant*2MaxExp

Numero minimo rappresentabile = - MaxMant*2MaxExp

Zero + = + MinMant*2MinExp

Zero - = - MinMant*2MinExp Nel caso di mantissa 0.1xxxx (senza hidden bit)

MaxMant = 0.11…1 = 1-2-Nm MinMant = 0.1000… = 2-1

MaxExp = max valore rappresentabile (+)

MinExp = min valore rappresentabile ( « il più grande negativo »)

MIN MAX0 0+0-

Page 29: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 29

Esempio: IEEE 754 con singola precisione MinExp = -126 MaxExp = +127 [estremi per scopi speciali] Numero più grande normalizzato: ± 1.11…12 * 2127 ≈≈≈≈ 2*2127 = 2128 Numero più piccolo normalizzato: ± 1.00…02 * 2-126 = 2-126

OVERFLOW - NORMALIZZATI - DENORM. - UNDERF. DENORM.+ NORMALIZZATI + OVERFLOW +

-∞∞∞∞ -2128 -2-126 -2-149 0 2-149 2-126 2128 +∞∞∞∞

Page 30: RAPPRESENTAZIONE DI NUMERI REALI - la5bt · Granularità = intervallo tra due numeri consecutivi La granularità della rappresentazione in virgola fissa è costante: Parte intera

M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A 30

Granularità nella rappresentazione floating point Forma normalizzata: N= 0.1xxxxxxx * 2e (caso dx, no hidden bit) ⇒ granularità: 0.00000001*2e

ovvero: 2-Nm *2e [Nm: numero di bit per la mantissa] Per esempio con nM=3: e = +3 Granularità = 2-3 * 23 = 1 e = 0 Granularità = 2-3 * 20 = 2-3 e = -3 Granularità = 2-3 * 2-3 = 2-6 ⇒ i numeri "si infittiscono" per valori prossimi allo 0