UTILS.
100% w przeglądarce
💾

Konwerter zmiennoprzecinkowy IEEE-754

Przekonwertuj liczbę dziesiętną na/z jej wzorca bitowego IEEE-754 pojedynczej (32-bit) lub podwójnej (64-bit) precyzji i rozbierz pola znaku, wykładnika i mantysy.

Wpisz liczbę lub wzorzec bitowy powyżej.

O tym narzędziu

Konwerter zmiennoprzecinkowy IEEE-754 pokazuje dokładnie, jak liczba jest przechowywana w pamięci jako 32-bitowa liczba pojedynczej precyzji lub 64-bitowa liczba podwójnej precyzji, i potrafi odwrócić surowy wzorzec bitowy z powrotem na jego wartość dziesiętną. Używa typowanych tablic JavaScript (Float32Array / DataView), więc wzorzec bitowy jest prawdziwą reprezentacją sprzętową, a nie przybliżeniem.

W trybie do przodu podaje wzorzec w postaci szesnastkowej i binarnej podzielonej na trzy pola: bit znaku, wykładnik (8 bitów z przesunięciem 127 dla float32, 11 bitów z przesunięciem 1023 dla float64) i mantysę (23 lub 52 bity). Dekoduje też nieprzesunięty wykładnik i klasyfikuje wartość jako normalną, subnormalną, zero, nieskończoność lub NaN. Co ważne, drukuje dokładną przechowywaną wartość odczytaną z bitów — która dla float32 często różni się od tego, co wpisałeś, uwidaczniając błąd zaokrąglenia zmiennoprzecinkowego. Na przykład 0.1 nie jest przechowywane dokładnie w żadnej z precyzji.

W trybie odwrotnym wklejasz wzorzec hex (z lub bez 0x) lub pełnej szerokości ciąg binarny, a narzędzie reinterpretuje te bity jako liczbę zmiennoprzecinkową i pokazuje wynikową wartość dziesiętną plus ten sam rozkład pól. Wszystko działa lokalnie w Twojej przeglądarce. To podstawowe narzędzie do zrozumienia zaokrągleń, porównywania precyzji pojedynczej i podwójnej oraz badania specjalnych kodowań dla ±0, ±∞ i NaN.

Najczęściej zadawane pytania

Dlaczego przechowywana wartość różni się od tej, którą wpisałem?
Większość ułamków dziesiętnych nie może być przedstawiona dokładnie w binarnej zmiennoprzecinkowej reprezentacji, więc przechowywana jest najbliższa reprezentowalna wartość. Konwerter odczytuje bity z powrotem i pokazuje tę dokładną przechowywaną wartość, co ujawnia błąd zaokrąglenia — zwłaszcza w 32-bitowej pojedynczej precyzji.
Jak rozłożone są pola?
Float32 używa 1 bitu znaku, 8 bitów wykładnika (przesunięcie 127) i 23 bitów mantysy; float64 używa 1 bitu znaku, 11 bitów wykładnika (przesunięcie 1023) i 52 bitów mantysy. Nieprzesunięty wykładnik równa się surowemu wykładnikowi minus przesunięcie.
Jak kodowane są zero, nieskończoność i NaN?
Wykładnik złożony z samych zer z zerową mantysą to ±0 lub subnormal, jeśli mantysa jest niezerowa. Wykładnik złożony z samych jedynek oznacza ±nieskończoność, gdy mantysa jest zerowa, i NaN, gdy jest niezerowa. Narzędzie oznacza każdą kategorię.
Czy mogę przejść od wzorca bitowego z powrotem do liczby?
Tak. Przełącz na tryb odwrotny i wklej 8-cyfrowy hex (float32) lub 16-cyfrowy hex (float64), albo pełny 32- lub 64-bitowy ciąg binarny, a narzędzie reinterpretuje te dokładne bity jako wartość zmiennoprzecinkową.

Więcej narzędzi