Vai al contenuto

Convertitore di bit ed esadecimale in virgola mobile

Codifica un numero in IEEE 754 float32/64 oppure decodifica una sequenza esatta di bit binaria o esadecimale.

Scegli direzione e formato

Elaborazione nel browser.

Decimale, notazione scientifica, Infinity, -Infinity, NaN oppure -0. Inserisci esattamente 32/64 cifre binarie oppure 8/16 cifre esadecimali; sono consentiti 0x, spazi e trattini bassi.

Rappresentazione IEEE 754

Scegli un formato, inserisci un valore o una sequenza di bit e converti.

Valore numerico memorizzato1
Bit di segnoBit dell’esponenteBit della frazione
0
01111111
00000000000000000000000

Come usare il convertitore in virgola mobile

Codificare un numero

Scegli Da numero a bit ed esadecimale, seleziona float32 o float64 e inserisci un valore decimale. Il browser scrive il numero JavaScript in un DataView usando il formato binario IEEE 754 scelto. La pagina mostra poi valore memorizzato, sequenza completa di bit, byte esadecimali, segno, esponente, frazione e classe del valore.

Decodificare bit o esadecimale

Scegli Da bit o esadecimale a numero. Float32 richiede esattamente 32 cifre binarie o 8 esadecimali; float64 richiede 64 bit o 16 cifre esadecimali. Il prefisso 0x è facoltativo e spazi o trattini bassi possono separare i gruppi. I byte visualizzati sono big-endian: il byte più significativo viene prima.

Capire i campi

Il primo bit è il segno. Float32 usa 8 bit per l’esponente e 23 per la frazione, con bias 127; float64 usa 11 bit per l’esponente e 52 per la frazione, con bias 1023. Un esponente formato da soli zeri rappresenta zero o valori subnormali. Un esponente formato da soli uno rappresenta infinito o NaN, a seconda della frazione.

Prevedere gli arrotondamenti

JavaScript interpreta prima il valore decimale nel tipo Number. La codifica float32 può arrotondare di nuovo a 24 bit di precisione binaria; float64 usa il valore binary64 già interpretato da JavaScript. Il convertitore mostra questa rappresentazione memorizzata, ma non può recuperare cifre decimali perse prima della conversione né fornire aritmetica decimale a precisione arbitraria.

Esempi noti

Valore float32 1

Il numero 1 viene codificato nei bit 00111111100000000000000000000000 e nell’esadecimale 0x3F800000. Il segno è 0, l’esponente è 01111111 e la frazione contiene solo zeri.

Valori speciali e arrotondamento

In float32, -0 è 0x80000000, l’infinito positivo è 0x7F800000 e il subnormale positivo più piccolo è 0x00000001. Codificare π in float32 restituisce circa 3.1415927410125732 perché il valore decimale esatto viene arrotondato al valore float32 disponibile più vicino.

Limiti ed esattezza

Domande frequenti

Perché float32 cambia il mio decimale?

La maggior parte delle frazioni decimali non è rappresentabile esattamente in binario e float32 ha meno bit di precisione di JavaScript Number.

+0 e -0 sono diversi?

In molti calcoli si confrontano allo stesso modo, ma hanno bit di segno diversi. Questo convertitore conserva e identifica -0.

Posso inserire un payload NaN?

Sì, in modalità di decodifica inserendo bit o esadecimale esatti. La modalità di codifica accetta solo il valore numerico NaN generico.

Che cosa significa visualizzazione big-endian?

Il byte più a sinistra contiene i bit di segno ed esponente di ordine più alto. È un ordine di visualizzazione esplicito, indipendente dalla disposizione della memoria del dispositivo.