Untitled
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