Convertitore IEEE 754

Questo convertitore IEEE 754 trasforma un numero decimale nel pattern a 16, 32 o 64 bit e mostra segno, esponente, mantissa, il valore esatto memorizzato e l’errore di arrotondamento. Accetta anche esadecimale e bit.

Fonte: Wikipedia – IEEE 754 (Formate, Bias, subnormale Zahlen, Sonderwerte). Aggiornato al: .

I miei strumentiI dati inseriti vengono salvati solo in questo browser.

Risultato

Risultato
0x3DCCCCCD · 0 01111011 10011001100110011001101
Struttura dei bit
ParteBitSignificato
Segno0+
Esponente (8 bit)01111011123 − 127 = -4
Mantissa (23 bit)100110011001100110011011.10011001100110011001101
Valore memorizzato
GrandezzaValore
Esadecimale0x3DCCCCCD
Tiponumero normale
Valore esatto memorizzato0.100000001490116119384765625
Differenza rispetto all’input+1.490e-9
Precedente0.0999999940395355224609375
Successivo0.10000000894069671630859375
L’arrotondamento va al numero rappresentabile più vicino e, in caso di parità, alla mantissa pari. Precedente e successivo mostrano la distanza tra due numeri in virgola mobile vicini. Con 32 bit: valore = (−1)^s · 2^(e − bias) · (1 + m/2^p).

Come si calcola

Un numero in virgola mobile è formato da segno s, esponente e e mantissa m: valore = (−1)^s · 2^(e − bias) · 1,m. Il decimale 0,1 diventa 0x3DCCCCCD come float e viene memorizzato come 0,100000001490116119384765625.

I tre formati

Perché 0,1 non è esatto

I numeri in virgola mobile memorizzano potenze di due, ma 0,1 è una frazione periodica in binario. Viene quindi arrotondato, e 0,1 + 0,2 dà 0,30000000000000004. Il convertitore mostra il valore decimale esatto memorizzato e l’errore di arrotondamento.

Valori speciali

Se tutti i bit dell’esponente valgono 1, il numero è infinito (mantissa 0) o NaN (mantissa diversa da 0). Se tutti valgono 0, il numero è zero o subnormale, memorizzato senza l’uno iniziale.

Domande frequenti

Come si converte un numero decimale in IEEE 754?

Lo si scompone in segno, esponente in base 2 e mantissa, memorizzati in 8 + 23 bit (float) o 11 + 52 bit (double). Il convertitore lo fa e mostra esadecimale e bit.

Perché 0,1 come float non è esattamente 0,1?

0,1 è una frazione infinita in binario e va arrotondato. Come float dà 0,100000001490116… e come double 0,1000000000000000055….

Che cosa significano i bit di un float?

Il primo bit è il segno, gli 8 successivi l’esponente con bias 127 e gli ultimi 23 la mantissa senza l’uno iniziale.

Fonti e riferimenti normativi

Aggiornato al: · Principi editoriali

Strumenti correlati