Vai al contenuto
100% locale

Convertitore IEEE 754

Converti un numero decimale nel suo schema binario IEEE 754, o i bit di nuovo in un numero.

Ingresso

Convertitore IEEE 754

Ogni numero in virgola mobile che un computer memorizza è davvero un bit di segno, un esponente e una mantissa, impacchettati insieme secondo IEEE 754 — lo standard che C, Java, Python e JavaScript usano per i loro tipi numerici. Incolla un numero decimale e questo strumento lo codifica nel preciso schema binario; incolla lo schema binario di nuovo e lo decodifica in un numero. Cambia direzione con un clic.

Sono supportate due precisioni: 32 bit semplice (1 bit di segno, 8 bit di esponente, 23 bit di mantissa — un float in C o un f32 in Rust) e 64 bit doppia (1 + 11 + 52 — un double in C e quello che è internamente ogni numero in JavaScript). Lo schema binario può essere scritto in esadecimale o come una semplice stringa di 0 e 1, con l'ordine dei byte impostato su big-endian o little-endian per corrispondere a come un debugger o un dump di memoria visualizza i byte.

Attiva "Mostra segno / esponente / mantissa" per vedere i tre campi separati — il modo più veloce per vedere perché un numero si codifica così. Attiva "Mostra valore effettivamente memorizzato e errore di arrotondamento" per vedere cosa succede a un numero dopo la memorizzazione: 3,14 non è esatto in nessuna precisione, e lo strumento mostra il valore effettivamente memorizzato insieme al divario tra quello che hai digitato e quello che l'hardware mantiene — il motivo per cui i confronti in virgola mobile nel codice falliscono. I valori speciali — 0, -0, Infinity, -Infinity e NaN — si convertono tutti nei loro schemi definiti, uno per riga, in modo che un intero elenco si converta in una volta.

Tutto viene eseguito localmente nel tuo browser, utilizzando lo stesso DataView che il motore JavaScript stesso utilizza per leggere e scrivere i numeri in virgola mobile IEEE 754 — nessuna libreria in virgola mobile lato server e nessun dato lascia il tuo dispositivo.

FAQ

Cos'è IEEE 754?
È lo standard che definisce come i computer memorizzano i numeri non interi in formato binario: un bit di segno, un esponente e una mantissa (frazione). La precisione semplice utilizza 32 bit in totale, la precisione doppia 64 — i formati dietro float e double in C, f32 e f64 in Rust e ogni numero in JavaScript.
Perché 3,14 non si decodifica esattamente a 3,14?
La maggior parte delle frazioni decimali non può essere rappresentata esattamente in formato binario, allo stesso modo in cui 1/3 non può essere scritta esattamente in formato decimale. Il valore effettivamente memorizzato è il più vicino che il formato può contenere — attiva "Mostra valore effettivamente memorizzato" per vederlo e le dimensioni del divario.
Qual è la differenza tra precisione semplice e doppia?
La precisione semplice (32 bit) ha meno spazio per la mantissa, quindi arrotonda più numeri e perde più cifre di precisione. La precisione doppia (64 bit) è esatta per molti più valori — è quello che i numeri JavaScript sono già internamente, quindi passare un doppio attraverso questo strumento non perde mai nulla.
Cosa cambia l'ordine dei byte?
Influisce solo su come gli stessi bit sono raggruppati in byte per la lettura o la scrittura — big-endian scrive il byte più significativo per primo, little-endian per ultimo, in linea con il modo in cui un debugger o un dump esadecimale visualizza la memoria su una particolare architettura. Il numero stesso e la scomposizione segno/esponente/mantissa non cambiano.
Il mio input viene caricato da qualche parte?
No. La conversione viene eseguita interamente nel tuo browser utilizzando le stesse API di lettura/scrittura binaria su cui si basa il motore JavaScript stesso — nulla di quello che digiti qui viene inviato a un server.