Standard IEEE 754
Standard IEEE 754 definiuje reprezentację i operacje na liczbach zmiennoprzecinkowych, powszechnie stosowany w procesorach i oprogramowaniu obliczeniowym.
Format pojedynczej precyzji
Liczba pojedynczej precyzji w formacie IEEE-754 jest reprezentowana za pomocą 32 bitów, które dzielą się na:
- Bit znaku (S) – 1 bit, określający, czy liczba jest dodatnia (0) czy ujemna (1).
- Bit wykładnika (exponent) – 8 bitów, kodujących wykładnik z nadmiarem 127, co daje zakres .
- Bit mantysy (fraction) – 23 bity, z pominięciem wiodącego 1, co daje około 7-8 dziesiętnych miejsc znaczących.
Zakres reprezentowanych wartości wynosi od około ±1,18·10−38 do ±3,4·1038. Mimo że dla wielu zastosowań jest on wystarczający, mogą wystąpić problemy, takie jak błędy przepełnienia.
Szczególne przypadki
Standard definiuje również szczególne przypadki:
- +0 – wszystkie bity zerowe, wykładnik równy -127.
- -0 – bit znaku ustawiony na 1, reszta bitów zerowa.
- Liczby małe (denormalized numbers) – wykładnik równy -127, mantysa różna od 0.
- + lub -∞ – wszystkie bity wykładnika ustawione, mantysa równa 0.
- NaN (Not a Number) – wykładnik ustawiony, mantysa różna od 0, występująca w wyniku błędnych operacji, takich jak pierwiastkowanie liczby ujemnej.
Format podwójnej precyzji
Format podwójnej precyzji składa się z 64 bitów, z 11 bitami na wykładnik (BIAS=1023) i 52 bitami na mantysę. Oferuje około 16 dziesiętnych miejsc znaczących oraz zakres od około ±2,2·10−308 do ±1,8·10308. W przeszłości obliczenia w pojedynczej precyzji były preferowane z powodu niższych kosztów, jednak obecnie obliczenia w podwójnej precyzji są bardziej powszechne.
Inne formaty
Oprócz standardu IEEE 754 istnieją również inne formaty liczb zmiennoprzecinkowych, takie jak 10-bajtowe, 16-bajtowe, oraz formaty o mniejszej precyzji, wykorzystywane m.in. w procesorach graficznych.