Untitled

mail@pastecode.io avatar
unknown
plain_text
14 days ago
1.8 kB
3
Indexable
Never
La rappresentazione in virgola mobile di un numero secondo lo standard IEEE754
(può essere a 32 bit o 64 bit) è suddivisa in 3 parti principali:

1) Segno (1 bit): indica se il numero è positivo (0) se è negativo (1)

2) Esponente (8 bit nel caso numero 32 bit, oppure 11 bit nel caso numero 64 bit):
Utilizzato per rappresentazione l'ordine di grandezza del numero, ovvero quante
volte moltiplicare o dividere il numero per 2

3) Mantissa (23 bit per i numeri 32 bit e 52 bit per i numeri a 64 bit):
Contiene le cifre significative del numero

Esempio 1:
Vogliamo rappresentare il numero 6.75 in binario usando IEEE754 a 32 bit.

La parte intera è 6 che in binario diventa (110)
La parte frazionaria 0.75 è 0.11 in binario (poichè 0.75 = 0.5 + 0.25 = 2^-1 + 2^-2)
Quindi 6.75 in binario è 110.11

Scriviamo il numero in notazione scientifica (binaria)
1.1011 * 2^2

La mantissa è 1.1011
L'esponente è 2 (poiché abbiamo spostato il punto decimale di due posizioni a sinistra)


Calcoliamo l'esponente con il bias:
l'esponente viene memorizzato con un bias (uno spostamento fisso per rappresentare
numeri sia positivi che negativi).
Per i numeri a 32 bit il bias è SEMPRE 127.

Per trovare l'esponente in formato IEEE754.

E_finale = E_reale + BIAS = 2 + 127 = 129.

Ora dobbiamo convertire questo esponente in binario, ovvero 129 --> 10000001


Determiniamo la mantissa (in IEEE754):
la mantissa è memorizzata senza il "1" implicito, quindi anzichè considerare
1.1011 consideriamo solo 1011.
Quindi la mantissa diventa

10110000000000000000000

Il segno: 6.75 è positivo quindi il segno vale 0.

Combiniamo tutte le parti per avere il numero finale:
Segno: 0
Esponente: 10000001
Mantissa : 10110000000000000000000

0 | 10000001 | 10110000000000000000000






Leave a Comment