Přeskočit na obsah
100% lokálně

IEEE 754 převodník

Převeďte desetinné číslo na jeho IEEE 754 bitový vzor, nebo bity zpět na číslo.

Vstup

IEEE 754 převodník

Každé číslo s pohyblivou řádovou čárkou, které počítač ukládá, je ve skutečnosti znaménko, exponent a mantisa, zabalené podle IEEE 754 — normy, kterou používají C, Java, Python a JavaScript pro své číselné typy. Vložte desetinné číslo a tento nástroj ho zakóduje na přesný bitový vzor; vložte bitový vzor zpět a dekóduje ho na číslo. Směr změníte jedním kliknutím.

Jsou podporovány dvě přesnosti: 32bitová jednoduchá (1 bit znaménka, 8 bitů exponentu, 23 bitů mantisy — C float nebo Rust f32) a 64bitová dvojitá (1 + 11 + 52 — C double, a to, co je v pozadí každého čísla v JavaScriptu). Bitový vzor se dá zapsat jako heksadecimální nebo jako obyčejný řetězec nul a jedniček, s pořadím bajtů nastaveným na big-endian nebo little-endian podle toho, jak ladicí program nebo výpis paměti zobrazuje bajty.

Zapněte „Zobrazit znaménko / exponent / mantisu“, abyste viděli tyto tři části rozdělené — nejrychlejší způsob, jak pochopit, proč se číslo zakóduje takto. Zapněte „Zobrazit aktuální uloženou hodnotu a chybu zaokrouhlení“, abyste viděli, co se s číslem stane po uložení: 3,14 není přesné v žádné přesnosti, a nástroj zobrazuje skutečnou uloženou hodnotu spolu s rozdílem mezi tím, co jste napsali a co si hardware pamatuje — důvod, proč selhávají porovnání s pohyblivou čárkou v kódu. Speciální hodnoty — 0, -0, Infinity, -Infinity a NaN — se všechny konvertují na jejich definované vzory, jeden za řádek, takže se najednou konvertuje celý seznam.

Všechno běží lokálně v prohlížeči, s použitím stejného DataView, jaký používá sám JavaScript engine na čtení a zápis IEEE 754 s pohyblivou čárkou — bez serverové knihovny s pohyblivou čárkou a bez toho, aby data opustila vaše zařízení.

Časté dotazy

Co je IEEE 754?
Je to norma, která definuje, jak počítače ukládají necelá čísla v binární podobě: bit znaménka, exponent a mantisu (zlomek). Jednoduchá přesnost používá celkem 32 bitů, dvojitá přesnost 64 — formáty za float a double v C, f32 a f64 v Rustu a každé číslo v JavaScriptu.
Proč se 3,14 nedekóduje přesně zpět na 3,14?
Většinu desetinných zlomků nelze v binární soustavě reprezentovat přesně, stejně jako se 1/3 nedá v desítkové soustavě napsat přesně. Skutečně uložená hodnota je nejbližší hodnota, kterou formát může mít — zapněte „Zobrazit aktuální uloženou hodnotu“, abyste viděli a velikost rozdílu.
Jaký je rozdíl mezi jednoduchou a dvojitou přesností?
Jednoduchá přesnost (32 bitů) má méně místa pro mantisu, takže zaokrouhluje více čísel a ztratí více číslic přesnosti. Dvojitá přesnost (64 bitů) je přesná pro mnohem více hodnot — to je to, co jsou čísla v JavaScriptu interně, takže průchod dvojité přesnosti tímto nástrojem nic neztratí.
Co změní pořadí bajtů?
Má to vliv jen na to, jak se stejné bity seskupují do bajtů na čtení nebo psaní — big-endian píše nejvýznamnější bajt první, little-endian poslední, podle toho, jak ladicí program nebo hex výpis zobrazuje paměť na konkrétní architektuře. Samotné číslo a rozdělení znaménko/exponent/mantisa se nezmění.
Je můj vstup někde nahravan?
Ne. Konverze běží zcela v prohlížeči s použitím stejných rozhraní pro binární čtení/zápis, na která závisí sám JavaScript engine — nic, co zde napíšete, se neodešle na server.