IEEE 754 kalkulator

Ten kalkulator IEEE 754 zamienia liczbę dziesiętną na wzorzec 16, 32 lub 64 bitów i pokazuje znak, wykładnik, mantysę, dokładnie zapisaną wartość i błąd zaokrąglenia. Można też wpisać hex lub bity.

Źródło: Wikipedia – IEEE 754 (Formate, Bias, subnormale Zahlen, Sonderwerte). Stan na: .

Moje narzędziaWpisane dane są zapisywane tylko w tej przeglądarce.

Wynik

Wynik
0x3DCCCCCD · 0 01111011 10011001100110011001101
Układ bitów
CzęśćBityZnaczenie
Znak0+
Wykładnik (8 bit)01111011123 − 127 = -4
Mantysa (23 bit)100110011001100110011011.10011001100110011001101
Zapisana wartość
WielkośćWartość
Hex0x3DCCCCCD
Rodzajliczba normalna
Dokładnie zapisana wartość0.100000001490116119384765625
Odchylenie od wpisanej liczby+1.490e-9
Poprzednik0.0999999940395355224609375
Następnik0.10000000894069671630859375
Zaokrąglanie następuje do najbliższej reprezentowalnej liczby, przy remisie do parzystej mantysy. Poprzednik i następnik pokazują odstęp między sąsiednimi liczbami zmiennoprzecinkowymi. Dla 32 bitów: wartość = (−1)^s · 2^(e − bias) · (1 + m/2^p).

Jak to obliczamy

Liczba zmiennoprzecinkowa składa się ze znaku s, wykładnika e i mantysy m: wartość = (−1)^s · 2^(e − bias) · 1,m. Liczba dziesiętna 0,1 jako float to 0x3DCCCCCD i jest zapisana jako 0,100000001490116119384765625.

Trzy formaty

Dlaczego 0,1 nie jest dokładne

Liczby zmiennoprzecinkowe zapisują potęgi dwójki, a 0,1 jest w systemie dwójkowym ułamkiem okresowym. Dlatego jest zaokrąglane, a 0,1 + 0,2 daje 0,30000000000000004. Kalkulator pokazuje dokładną zapisaną wartość dziesiętną i błąd zaokrąglenia.

Wartości specjalne

Jeśli wszystkie bity wykładnika to 1, liczba jest nieskończonością (mantysa 0) lub NaN (mantysa różna od 0). Jeśli wszystkie to 0, liczba jest zerem lub subnormalna, zapisana bez wiodącej jedynki.

Najczęściej zadawane pytania

Jak zamienić liczbę dziesiętną na IEEE 754?

Rozkłada się ją na znak, wykładnik o podstawie 2 i mantysę, zapisywane na 8 + 23 bitach (float) lub 11 + 52 bitach (double). Kalkulator robi to za Ciebie i pokazuje hex oraz bity.

Dlaczego 0,1 jako float nie jest dokładnie 0,1?

0,1 jest w systemie dwójkowym ułamkiem nieskończonym i trzeba je zaokrąglić. Jako float daje 0,100000001490116…, jako double 0,1000000000000000055….

Co oznaczają bity liczby float?

Pierwszy bit to znak, kolejne 8 bitów to wykładnik z biasem 127, a ostatnie 23 bity to mantysa bez wiodącej jedynki.

Źródła i podstawa prawna

Stan na: · Zasady redakcyjne

Podobne narzędzia