Esempio: Il formato floating point standard IEEE P754 (precisione
by user
Comments
Transcript
Esempio: Il formato floating point standard IEEE P754 (precisione
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 Formato: 31 30 S (8 bit) E 22 (23 bit) 0 M M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 11 Mantissa normalizzata: ± (s) 1. 23 bit di rappresentazione per la mantissa (M) HIDDEN BIT 0: segno + 1: segno Esponente: E Rappresentazione in 8 bit a eccesso 127 (127 = 2n-1 -1), con le configurazioni 00000000 e 11111111 non ammesse! E = esp + 127 ⇒ esp = E - 127 (-126 ≤ esp ≤ 127) M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 12 NB : data la rappresentazione IEEE 31 30 S (8 bit) E 22 (23 bit) 0 M si ha N = (-1)S * 2(E – 127) * 1.M M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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: Mantissa: E = 27 = 128 esp = 128-127 = 1 mant = 1.1 ⇒ N = 1.12 * 21 = 112 = 310 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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: E = 011111102 = 126 esp = 126-127 = - 1 ⇒ N = 1.1 * 2-1 = 0.112 = 2-1 + 2-2 = 0.5 + 0.25 = 0.75 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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: Esponente: esp = 2 ⇒ IEEE754: N = 1.001 * 22 ⇒ E = 2+127 = 12910 = 10000001 1 10000001 0010……0 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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) M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 17 Esercizio Si consideri la seguente rappresentazione floating point: 1 bit per il segno 4 bit per l’esponente codificato in complemento a due 19 bit per mantissa, normalizzata con 1A cifra ≠0 a dx del punto di radice senza l’uso di hidden bit Rappresentare –20.02510 Soluzione Formato: s yyyy xxxxxxxxxx con mantissa 0.1 … … … Rappresentazione binaria: 2010 = 101002 0.025 = … M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 19 0.025 0 0.05 0 0.1 0 0.025 = 0.0000011 0.2 0 0.4 0 0.8 1 .6 1 .2 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 21 Esercizio Si consideri la seguente rappresentazione floating point: 1 bit per il segno 5 bit per l’esponente codificato 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: M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 22 351 = 101011111 0.5344 1 .0688 0 0.1376 0 0.2752 0 7 bit 0.5504 1 .1008 0 0.2016 0 0.4032 0 0.8064 quanto dobbiamo andare avanti? La forma normalizzata sarà 1.01011111 + altri 7 bit per arrivare a 15 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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) M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 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 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 26 Esercizio Si consideri la seguente rappresentazione floating point: 1 bit per il segno 4 bit per l’esponente in eccesso 2n-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 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 27 Soluzione 1 - 1100 – 1011000 Segno: Esponente: 11002 = 12 ⇒ E = esp + P ⇒ in eccesso 24-1 = 8 esp = E - P = 12 - 8 = 4 mantissa : 0.11011000 ⇒ Numero rappresentato : N = - 0.11011000 * 24 = - 1101.12 = -13.5 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 28 Intervallo di rappresentazione e granularità Intervallo dei valori rappresentabili MaxExp MAX = Numero massimo rappresentabile = + MaxMant * 2 MaxExp MIN = Numero minimo rappresentabile = - MaxMant * 2 MinExp Zero+ = +MinMant * 2 MinExp Zero- = -MinMant * 2 MIN 0- 0 0+ MAX Granularità Se la forma normalizzata è 0.1xxxxxxx * 2esp (caso dx, no hidden bit) ⇒ granularità: 0.00000001*2esp ovvero: 2-Nm *2esp [Nm: numero di bit per la mantissa] M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 29 Esempio/Esercizio: 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 - -∞ ∞ -2128 NORMALIZZATI - DENORM.- -2-126 UNDERF. DENORM.+ -2-149 0 2-149 NORMALIZZATI + 2-126 OVERFLOW + 2128 +∞ ∞ NB: nel caso della virgola fissa, l’intervallo dei valori rappresentabili sarebbe molto più limitato. Es: - anche se dedicassimo tutti i 32 bit alla parte intera, max 232 -1 - anche se dedicassimo tutti i 32 bit alla parte fraz, min 2-32 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 30 Granularità nella rappresentazione IEEE754 Granularità = 0.0… … … 1 = 2-23 * 2esp * 2esp − Granularità massima (minima precisione): con max esponente espmax = 254 – 127 = 127 [estremo non usato] ⇒ granularità massima: 2-23 * 2127 = 2104 − Granularità minima (massima precisione): con min esponente espmin = 1 – 127 = – 126 [estremo non usato] ⇒ granularità minima: 2-23 * 2-126 = 2-149 NB: non si considerano i numeri denormalizzati i numeri "si infittiscono" per valori prossimi allo 0 M. GIACOMIN - UNIVERSITA’ DI BRESCIA – ESERCITAZIONI DI FONDAMENTI DI INFORMATICA A – A.A. 2008/2009 31