IEEE 754 – standard reprezentacji binarnej i operacji na liczbach zmiennoprzecinkowych (IEEE floating-point standard), implementowany powszechnie w procesorach i oprogramowaniu obliczeniowym.

Reprezentacja zmiennoprzecinkowa IEEE-754 single

Liczbę pojedynczej precyzji w formacie IEEE-754 zapisujemy za pomocą trzydziestu dwóch bitów. Pierwszym bitem jest bit znaku S (sign). Jeśli liczba jest ujemna, oznacza to, iż S przyjmie wartość 1. Jeśli jest dodatnia, S jest równe zero. Dalej następuje 8 bitów kodujących wykładnik 2 (cecha), przy czym kodowanie cechy jest kodowaniem z nadmiarem (BIAS, w tym przypadku BIAS=127), co daje zakres wykładników przy czym najmniejsza i największa wartość wykładnika ma znaczenie specjalne (patrz niżej szczególne przypadki). Kolejne 23 bity to mantysa liczby, przy czym pomija się wiodący, niezerowy bit. Daje to około 7–8 dziesiętnych miejsc znaczących i zakres od około ±1,18·10−38 do około ±3,4·1038. Zakres taki może wydawać się wystarczający w prostych obliczeniach, lecz jego użycie nastręcza trudności, gdy istnieje potrzeba stosowania niektórych stałych fizycznych (jak np. stała Plancka), często też może prowadzić do występowania błędów przepełnienia podczas obliczeń pośrednich, jeśli ich wynik wykroczy poza reprezentowany zakres.

Oprócz tego zdefiniowano szczególne przypadki:

Standard definiuje również liczby podwójnej precyzji, których zapis składa się z 64 bitów, przy czym na wykładnik przypada 11 bitów (BIAS=1023), a na mantysę 52 bity (oraz wiodąca pominięta jedynka). Liczby podwójnej precyzji reprezentują około 16 dziesiętnych miejsc znaczących, a ich zakres stosowalności rozciąga się od około ±2,2·10−308 do około ±1,8·10308. W czasach, gdy popularne komputery nie miały koprocesorów matematycznych, koszt prowadzenia obliczeń w pojedynczej precyzji był znacząco niższy od kosztu obliczeń w podwójnej precyzji, więc mimo oczywistych niedostatków powszechnie korzystano z tych pierwszych. Obecnie jednak ta różnica nie jest aż tak znacząca i obliczenia w podwójnej precyzji są znacznie częściej stosowane.

Istnieją też inne formaty liczb zmiennoprzecinkowych, jak np. 10-bajtowe (obsługiwane sprzętowo przez popularne procesory kompatybilne z x86), 16-bajtowe (procesory przeznaczone na rynek superkomputerów), jak też i formaty o mniejszej precyzji, używane m.in. przez procesory graficzne.

Zobacz też

Linki zewnętrzne