Ugrás a tartalomhoz
100% helyi

IEEE 754 konverter

Konvertáljon egy decimális számot IEEE 754 bitkészletté, vagy a biteket vissza számmá.

Bemenet
Kimenet

IEEE 754 konverter

Minden lebegőpontos szám, amelyet egy számítógép tárol, valójában egy előjelbit, egy kitevő és egy mantissza, az IEEE 754 szabvány szerint becsomagolva — azt a szabványt, amelyet a C, Java, Python és JavaScript használ a szám típusaihoz. Illesszen be egy decimális számot, és ez az eszköz a pontos bitkészletbe kódolja; illesszen be újra a bitkészletet, és visszadekódolja számmá. Egy kattintással váltson irány az ellenkező műveletre.

Két pontossági szint támogatott: 32 bites egyes (1 előjelbit, 8 kitevőbit, 23 mantisszabit — egy C float vagy egy Rust f32) és 64 bites dupla (1 + 11 + 52 — egy C double és amit a JavaScript számok belsőleg képviselnek). A bitkészlet hexadecimálisként vagy 0 és 1 egyszerű karaktersorozataként írható fel, a bájtok sorrendje big-endian vagy little-endian értékre állítható, hogy megfeleljen a hibakereső vagy memóriadump megjelenítésének.

Kapcsolja be az „Előjel / kitevő / mantissza megjelenítése” lehetőséget a három mező elkülönítéséhez — ez a leggyorsabb módja annak, hogy megértse, miért kódolódik a szám így. Kapcsolja be az „Tényleges tárolt érték és kerekítési hiba megjelenítése” lehetőséget, hogy lássa, mi történik egy számmal a tárolás után: 3,14 nem pontos egyetlen pontossági szinten sem, és az eszköz mutatja a tényleges tárolt értéket az Ön által beírt és amit a hardver tárol között fennálló eltéréssel — ez az oka annak, hogy a lebegőpontos összehasonlítások a kódban meghiúsulnak. Speciális értékek — 0, -0, Infinity, -Infinity és NaN — mindegyike megfelelő bitkészletre konvertálódik, soronként egy, így egy teljes lista egyszerre konvertálódik.

Minden lokálisan, az Ön böngészőjében történik, az IEEE 754 lebegőpontos számok olvasásához és írásához a JavaScript motor által használt DataView segítségével — nincs szerver oldali lebegőpontos könyvtár, és nem lépnek ki az Ön eszközéről az adatok.

Gyakori kérdések

Mi az IEEE 754?
Az a szabvány, amely meghatározza, hogyan tárolnak a számítógépek nem egész számokat bináris formátumban: egy előjelbit, egy kitevő és egy mantissza (tört). Az egyes pontosság összesen 32 bitet használ, a dupla pontosság 64-et — a C float és double, a Rust f32 és f64, valamint a JavaScript számai mögötti formátumok.
Miért nem dekódolódik 3,14 pontosan 3,14-re?
A legtöbb decimális tört nem ábrázolható pontosan binárisban, ugyanúgy, ahogy 1/3 sem írható pontosan decimálisban. A ténylegesen tárolt érték az a legközelebb álló érték, amelyet a formátum tartalmazhat — kapcsolja be az „Tényleges tárolt érték megjelenítése” lehetőséget, hogy lássa és a különbség nagyságát.
Mi a különbség az egyes és dupla pontosság között?
Az egyes pontosság (32 bit) kevesebb helyet hagy a mantisszának, így több számot kerekít és több pontossági számjegyet veszít el. A dupla pontosság (64 bit) sokkal több érték esetén pontos — ez az, amit a JavaScript számok már belsőleg képviselnek, így a dupla át ezen az eszközön keresztül soha nem veszít el semmit.
Mit változtat meg a bájtok sorrendje?
Csak azt befolyásolja, hogyan csoportosítódnak az azonos bitek bájtokra olvasáshoz vagy íráshoz — big-endian az előjel-legalább szignifikáns bájtot először írja, little-endian az utolsót, ahogy a hibakereső vagy heksadecimális kiírás mutatja a memóriát egy adott architektúrán. Magának a számnak és az előjel/kitevő/mantissza felosztásának nincs változása.
Fel van-e töltve az adatom valahova?
Nem. A konverzió teljes egészében az Ön böngészőjében történik, az azonos bináris olvasás/írás API-k használatával, amelyekre a JavaScript motor támaszkodik — az itt beírt semmi nem kerül szerverre.