Preskočiť na obsah
100% lokálne

IEEE 754 prevodník

Konvertujte desatinné číslo na jeho IEEE 754 bitový vzor, alebo bity späť na číslo.

Vstup
Výstup

IEEE 754 prevodník

Každé číslo s pohyblivou čiarkou, ktoré počítač ukladá, je v skutočnosti znamienko, exponent a mantisa, zabalené podľa IEEE 754 — normy, ktorú používajú C, Java, Python a JavaScript pre svoje číselné typy. Vložte desatinné číslo a tento nástroj ho zakóduje na presný bitový vzor; vložte bitový vzor späť a dekóduje ho na číslo. Smer zmeníte jedným kliknutím.

Podporované sú dve presnosti: 32-bitová jednoducha (1 bit znamienka, 8 bitov exponenta, 23 bitov mantisy — C float alebo Rust f32) a 64-bitová dvojitá (1 + 11 + 52 — C double, a to, čo je v pozadí každé číslo v JavaScripte). Bitový vzor sa dá zapísať ako heksadecimálny alebo ako obvyklý reťazec núl a jednotiek, s poriadkom bajtov nastaveným na big-endian alebo little-endian podľa toho, ako ladiaci program alebo výpis pamäte zobrazuje bajty.

Zapnite „Zobraziť znamienko / exponent / mantisu“, aby ste videli tieto tri časti rozdelené — najrýchlejší spôsob, ako pochopiť, prečo sa číslo zakóduje takto. Zapnite „Zobraziť aktuálnu uloženú hodnotu a chybu zaokrúhlenia“, aby ste videli, čo sa s číslom stane po uložení: 3,14 nie je presná v žiadnej presnosti, a nástroj zobrazuje skutočnú uloženú hodnotu spolu s rozdielom medzi tým, čo ste napísali a čo si hardware pamätá — dôvod, prečo zlyhávajú porovnávania zmennopresnosti v kóde. Špeciálne hodnoty — 0, -0, Infinity, -Infinity a NaN — sa všetky konvertujú na ich definované vzory, jeden za riadok, takže sa naraz konvertuje celý zoznam.

Všetko beží lokálne vo vašom prehliadači, s použitím toho istého DataView, ako ho používa sám JavaScript engine na čítanie a zápis IEEE 754 zmennopresnosti — bez serverovej knižnice zmennopresnosti a bez toho, aby data opustili vašu zariadenie.

Časté otázky

Čo je IEEE 754?
Je to norma, ktorá definuje, ako počítače uchovávajú necelé čísla v binárnej podobe: bit znamienka, exponent a mantisu (zlomok). Jednoducha presnosť používa spolu 32 bitov, dvojitá presnosť 64 — formáty za float a double v C, f32 a f64 v Ruste a každé číslo v JavaScripte.
Prečo sa 3,14 nedekóduje presne späť na 3,14?
Väčšina desatinných zlomkov sa nedá v binárnej sústave reprezentovať presne, rovnako ako 1/3 sa nedá v desiatkovej sústave napísať presne. Skutočne uložená hodnota je najbližšia hodnota, ktorú formát môže mať — zapnite „Zobraziť aktuálnu uloženú hodnotu“, aby ste videli a veľkosť rozdielu.
Aký je rozdiel medzi jednoduchou a dvojitou presnosťou?
Jednoducha presnosť (32 bitov) má menej miesta pre mantisu, takže zaokrúhľuje viac čísel a stratí viac číslic presnosti. Dvojitá presnosť (64 bitov) je presná pre oveľa viac hodnôt — to je to, čo sú čísla v JavaScripte interné, takže prejdenie dvojitej presnosti cez tento nástroj nič nestratí.
Čo zmení poriadok bajtov?
Má to vplyv len na to, ako sa rovnaké bity zoskupujú do bajtov na čítanie alebo psanie — big-endian zapisuje najvýznamnejší bajt prvý, little-endian posledný, podľa toho, ako ladiaci program alebo hex výpis zobrazuje pamäť na konkrétnej architektúre. Samotné číslo a rozdelenie znamienko/exponent/mantisa sa nemenia.
Je môj vstup niekde nahravaný?
Nie. Konverzia beží úplne vo vašom prehliadači s použitím rovnakých binárnych rozhraní čítania/zápisu, na ktorých závisí sám JavaScript engine — nič, čo tu napíšete, sa neposlaní na server.