Preskoči na vsebino
100% lokalno

IEEE 754 pretvornik

Pretvorite decimalno število v njegov IEEE 754 bitni vzorec ali bite nazaj v število.

Vhod

IEEE 754 pretvornik

Vsako število s plavajočo vejico, ki ga računalnik shranjuje, je dejansko bit predznaka, eksponent in mantisa, zbrana skupaj v skladu s IEEE 754 — standardom, ki ga uporabljajo C, Java, Python in JavaScript za svoje številčne tipe. Prilepite decimalno število in to orodje ga kodira v natančen bitni vzorec; prilepite bitni vzorec nazaj in ga dekodira v število. Smer spremenite z enim klikom.

Podprti sta dve natančnosti: 32-bitna enojna (1 bit predznaka, 8 bitov eksponenta, 23 bitov mantise — C float ali Rust f32) in 64-bitna dvojna (1 + 11 + 52 — C double in to, kar je vsako JavaScript število interno). Bitni vzorec je mogoče napisati kot heksadecimalni ali kot preprost niz 0 in 1, z vrstnim redom bajtov nastavljenim na big-endian ali little-endian, da se ujema s tem, kako razhroščevalnik ali odvoz pomnilnika prikazuje bajte.

Vključite „Prikaži predznak / eksponent / mantiso“, da vidite tri polja ločena — najhitrejši način, da vidite, zakaj se število kodira tako. Vključite „Prikaži dejansko shranjeno vrednost in napako zaokroževanja“, da vidite, kaj se z številom dejansko zgodi po shranjevanju: 3,14 ni točna v nobeni natančnosti, in orodje prikazuje dejansko shranjeno vrednost skupaj z razliko med tistim, kar ste vnos, in kar si strojna oprema zapomni — razlog, zakaj primerjave s plavajočo vejico v kodi ne uspevajo. Posebne vrednosti — 0, -0, Infinity, -Infinity in NaN — se vse pretvorijo v njihove definirane vzorce, po enega na vrstico, tako da se celoten seznam pretvori naenkrat.

Vse teče lokalno v vašem brskalniku, z isto DataView, ki jo sam JavaScript engine uporablja za branje in pisanje IEEE 754 števil s plavajočo vejico — brez knjižnice s plavajočo vejico na strani strežnika in brez podatkov, ki bi zapustili vašo napravo.

FAQ

Kaj je IEEE 754?
To je standard, ki opredeljuje, kako računalniki shranjujejo necela števila v binarni obliki: bit predznaka, eksponent in mantiso (razlomek). Enojna natančnost uporablja skupno 32 bitov, dvojna natančnost 64 — obliki za float in double v C, f32 in f64 v Rustu in vsako število v JavaScriptu.
Zakaj se 3,14 ne dekodira natančno nazaj na 3,14?
Večina decimalnih ulomkov ne more biti predstavljena natančno v binarni obliki, na isti način kot 1/3 ne more biti napisana natančno v decimalni obliki. Vrednost, ki je dejansko shranjena, je najbližja, ki jo lahko drži oblika — vključite „Prikaži dejansko shranjeno vrednost“, da jo vidite in velikost razlike.
Kakšna je razlika med enjsko in dvojno natančnostjo?
Enojna natančnost (32 bitov) ima manj prostora za mantiso, zato zaokroži več števil in izgubi več števk natančnosti. Dvojna natančnost (64 bitov) je natančna za veliko več vrednosti — to je tisto, kar so JavaScript števila že interno, zato prehod dvojnega skozi to orodje nikoli ne izgubi ničesar.
Kaj se spremeni pri vrstnem redu bajtov?
Vpliva samo na to, kako so isti biti razvrščeni v bajtove za branje ali pisanje — big-endian prvo napise najbolj pomemben bajt, little-endian zadnjega, kar se ujema s tem, kako razhroščevalnik ali šestnajstiški odvoz prikazuje pomnilnik na določeni arhitekturi. Samo število in razdelitev predznaka/eksponenta/mantise se ne spremenita.
Ali je moj vnos naložen negdje?
Ne. Pretvorka se izvršava v celoti v vašem brskalniku z istimi binarnimi API-ji branja/pisanja, na katere se JavaScript engine zanašan — nič, kar tukaj vnesete, ni poslano na strežnik.