Ga naar inhoud
100% lokaal

IEEE 754 converter

Zet een decimaal getal om naar zijn IEEE 754-bitpatroon, of bits terug naar een getal.

Invoer
Uitvoer

IEEE 754 converter

Elk drijvend-kommagetal dat een computer opslaat, is eigenlijk een tekenbit, een exponent en een mantisse, verpakt volgens IEEE 754 — de standaard die C, Java, Python en JavaScript gebruiken voor hun nummertypen. Plak een decimaal getal en deze tool codeert het in het exacte bitpatroon; plak het bitpatroon terug en het decodeert het naar een getal. Wissel van richting met één klik om beide kanten op te werken.

Twee nauwkeurigheden worden ondersteund: 32-bits enkel (1 tekenbit, 8 exponentbits, 23 mantissebits — een C float of een Rust f32) en 64-bits dubbel (1 + 11 + 52 — een C double en wat elk JavaScript-getal onder de motorkap is). Het bitpatroon kan als hexadecimaal of als een gewone tekenreeks van nullen en enen worden geschreven, met de byte-volgorde ingesteld op big-endian of little-endian om overeen te stemmen met hoe een debugger of geheugenafdruk de bytes uitlegt.

Zet "Teken / exponent / mantisse tonen" aan om de drie velden gescheiden te zien — de snelste manier om te zien waarom een getal zo codeert. Zet "Werkelijk opgeslagen waarde en afrondingsfout tonen" aan om te zien wat er met een getal gebeurt nadat het is opgeslagen: 3,14 is in geen enkele nauwkeurigheid exact, en de tool toont de werkelijk opgeslagen waarde samen met de kloof tussen wat u hebt ingevoerd en wat de hardware behoudt — de reden waarom drijvend-kommavergelij kingen in code falen. Speciale waarden — 0, -0, Infinity, -Infinity en NaN — worden allemaal omgezet naar hun gedefinieerde patronen, één per regel, zodat een hele lijst in één keer wordt omgezet.

Alles draait lokaal in uw browser, met behulp van dezelfde DataView die de JavaScript-engine zelf gebruikt om IEEE 754 drijvende-kommagetallen te lezen en te schrijven — geen serverzijdige drijvende-kommabibliotheek en geen gegevens verlaten uw apparaat.

FAQ

Wat is IEEE 754?
Het is de standaard die bepaalt hoe computers niet-gehele getallen in binair format opslaan: een tekenbit, een exponent en een mantisse (fractie). Enkele nauwkeurigheid gebruikt 32 bits in totaal, dubbele nauwkeurigheid 64 — de formaten achter float en double in C, f32 en f64 in Rust, en elk getal in JavaScript.
Waarom decodeert 3,14 niet precies terug naar 3,14?
De meeste decimale breuken kunnen niet exact in binair format worden weergegeven, op dezelfde manier als 1/3 niet exact in decimaal format kan worden geschreven. De werkelijk opgeslagen waarde is de dichtstbijzijnde waarde die het format kan bevatten — zet "Werkelijk opgeslagen waarde tonen" aan om deze en de grootte van de kloof te zien.
Wat is het verschil tussen enkele en dubbele nauwkeurigheid?
Enkele nauwkeurigheid (32 bits) heeft minder ruimte voor de mantisse, dus het rondt meer getallen af en verliest meer precisiecijfers. Dubbele nauwkeurigheid (64 bits) is exact voor veel meer waarden — dit is wat JavaScript-getallen intern al zijn, dus het heen en weer gaan van een dubbele door deze tool verliest nooit iets.
Wat verandert byte-volgorde?
Het beïnvloedt alleen hoe dezelfde bits in bytes voor lezen of typen worden gegroepeerd — big-endian schrijft de meest significante byte eerst, little-endian laatst, overeenkomstig hoe een debugger of hex dump geheugen op een bepaalde architectuur weergeeft. Het getal zelf en de tekenbreaking/exponent/mantisse veranderen niet.
Worden mijn invoergegevens ergens geüpload?
Nee. De conversie verloopt volledig in uw browser met behulp van dezelfde binaire lees-/schrijf-API's waarop de JavaScript-engine zelf vertrouwt — niets wat u hier typt, wordt naar een server verzonden.