Esempio di calcolo numero reale standard IEEE754 a precisione singola (32 bit)
Per rappresentare il numero decimale reale :
-5,828125
Per prima cosa bisogna convertire il numero in binario per la parte intera:5:2=2 R=1 2:2=1 R=0 1:2=0 R=1
510 =(1*22+0*21 + 1*20)10 =(101)2
Pe la parte decimale in binario:
0,828125*2=1,65625 U==1 0,65625 *2=1,3125 U=1 0,3125 *2=0,625 U=0 0,625 *2=1,25 U=1 0,25 *2=0,5 U=0 0,5 *2=1 U=1
se si approssima alla 3 cifra
(0,828125)10 = (0,110101)2~ (0,110)2
Riconvertendo in decimale in modo preciso il numero approssimato alla terza cifra
(0,110)2=1*2-1+1*2-2+0*2-3=(0,5+,0,25+0)10=(0,75)10
ERRORE ASSOLUTO =differenza tra Numero ORIGINALE e Numero APPROSSIMATO
Ɛass=0,828125-0,75=0,078125
ERRORE RELATIVO= (ERRORE ASSOLUTO/ NUMERO ORIGINALE)%
Ɛrel=0,0943=~.9%
Passo successivo NORMALIZZARE la
MANTISSA
BINARIA composta non solo dalla partefrazionaria 0,828125 ma anche da quella intera 5
(5)10 = (101)2
(0,828125)10 = (0,110101)2
Uniamo le due parti espresse in binario: 101,110101
Spostiamo la virgola due posizioni verso sinistra per avere la rappresentazione normalizzata
(riscrivendo in questo modo il risultato: 1,01110101*22
Notiamo che la base è 2 perche ovviamente il numero è in rappresentazione binaria .. e la mantissa normalizzata 01110101 (senza 1 prima della virgola),
Passiamo ora all'ESPONENTE
del numero finale in rappresentazione Standard IEEE-754 Dobbiamo ottenere la rappresentazione in eccesso Psommando l’exp (2) del numero binario normalizzato
al BIAS =2(n-1)-1=127 VALORE FISSO PER NUMERI SINGOLA PRECISIONE: (n=8)
.
Ora bisogna convertire il numero decimale che rappresenta l’esponente in binario in eccesso P:
(129)
10= (10000001)
2Abbiamo così ottenuto il nostro numero in floating point ricordando di mettere ad 1 il bit del segno in quanto siamo partiti da un numero negativo: -5,828112510 e di riempire le posizioni fino al 32 bit con 0
1| 1000 0001|0111 0101 0000 0000 0000 000
Segno Exp Mantissa
Se vogliamo ora esprimere in esadecimale il numero trovato non ci resta che suddividerlo a gruppi di quattro e trovare i valori esadecimali corrispondenti:
1100 0000 1011 1010 1000 0000 0000 0000