...

Esempio: Il formato floating point standard IEEE P754 (precisione

by user

on
Category: Documents
26

views

Report

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
Fly UP