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
- Questo strumento esamina le rappresentazioni di scambio IEEE 754 attraverso le operazioni DataView standard del browser. Non è un calcolatore a precisione arbitraria, un servizio di conservazione dei decimali, un ispettore della memoria o un lettore di file.
- NaN ammette molte sequenze valide di bit del payload. Codificare il testo NaN usa la rappresentazione canonica del browser, mentre la decodifica conserva e mostra esattamente la sequenza di bit inserita. Il risultato numerico resta semplicemente NaN.
- Le visualizzazioni binaria ed esadecimale usano l’ordine dei byte big-endian per leggibilità e scambio. Non viene affermato quale sia l’ordine dei byte nella memoria del dispositivo. I casi di parità nell’arrotondamento decimale-float e l’overflow seguono il comportamento di conversione JavaScript/DataView.
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.