Sări la conținut
Complet local

Convertor IEEE 754

Convertiți un număr zecimal în modelul de biți IEEE 754, sau convertiți biții înapoi la un număr.

Intrare
Ieșire

Convertor IEEE 754

Fiecare număr în virgulă mobilă pe care un computer îl stochează este cu adevărat un bit de semn, un exponent și o mantisă, grupate conform IEEE 754 — standardul pe care C, Java, Python și JavaScript îl folosesc pentru tipurile lor numerice. Lipiți un număr zecimal și acest instrument îl codifică în modelul exact de biți; lipiți modelul de biți înapoi și îl decodifică într-un număr. Schimbați direcția cu un clic pentru a merge în ambele sensuri.

Sunt suportate două precizii: 32 de biți simplă (1 bit de semn, 8 biți de exponent, 23 de biți de mantisă — un float în C sau un f32 în Rust) și 64 de biți dublă (1 + 11 + 52 — un double în C și ceea ce este fiecare număr JavaScript în interior). Modelul de biți poate fi scris în hexazecimal sau ca un simplu șir de 0 și 1, cu ordinea octeților setată la big-endian sau little-endian pentru a corespunde cu modul în care un depanator sau o descărcare de memorie afișează octeții.

Activați "Afișează semn / exponent / mantisă" pentru a vedea cei trei câmpuri separați — cel mai rapid mod de a vedea de ce un număr se codifică în acest fel. Activați "Afișează valoarea efectiv stocată și eroarea de rotunjire" pentru a vedea ce se întâmplă cu un număr după stocarea sa: 3,14 nu este exact în nicio precizie, iar instrumentul afișează valoarea efectiv stocată împreună cu diferența dintre ceea ce ați introdus și ceea ce hardware-ul păstrează — motivul pentru care comparațiile în virgulă mobilă din cod eșuează. Valorile speciale — 0, -0, Infinity, -Infinity și NaN — se convertesc toate în modelele lor definite, un pe linie, astfel încât o listă întreagă să se convertească dintr-o dată.

Totul se execută local în browserul dvs., folosind același DataView pe care motorul JavaScript însuși îl folosește pentru a citi și a scrie numere în virgulă mobilă IEEE 754 — nicio bibliotecă în virgulă mobilă pe server și niciun date nu lasă dispozitivul dvs.

FAQ

Ce este IEEE 754?
Este standardul care definește cum computerele stochează numere non-întregi în format binar: un bit de semn, un exponent și o mantisă (fracție). Precizia simplă folosește 32 de biți în total, precizia dublă 64 — formatele din spatele float și double în C, f32 și f64 în Rust, și fiecare număr din JavaScript.
De ce 3,14 nu se decodifică exact înapoi la 3,14?
Majoritatea fracțiilor zecimale nu pot fi reprezentate exact în format binar, în același mod în care 1/3 nu poate fi scris exact în format zecimal. Valoarea efectiv stocată este cea mai apropiată pe care o poate ține formatul — activați "Afișează valoarea efectiv stocată" pentru a o vedea și dimensiunea diferenței.
Care este diferența dintre precizia simplă și cea dublă?
Precizia simplă (32 de biți) are mai puțin spațiu pentru mantisă, deci rotunjește mai multe numere și pierde mai multe cifre de precizie. Precizia dublă (64 de biți) este exactă pentru mult mai multe valori — aceasta este ceea ce numerele JavaScript sunt deja în interior, deci trecerea unui dublu prin acest instrument nu pierde niciodată nimic.
Ce schimbă ordinea octeților?
Afectează doar modul în care aceiași biți sunt grupați în octeți pentru citire sau scriere — big-endian scrie cel mai semnificativ octet mai întâi, little-endian ultimul, corespunzând cu modul în care un depanator sau o descărcare hexazecimală afișează memoria pe o arhitectură particulară. Numărul în sine și descompunerea semn/exponent/mantisă nu se schimbă.
Intrarea mea este încărcată undeva?
Nu. Convertirea se execută în întregime în browserul dvs. folosind aceleași API-uri de citire/scriere binare pe care se bazează motorul JavaScript însuși — nimic din ceea ce tastați aici nu este trimis pe un server.