IEEE 754

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:

  • +0 – wszystkie bity są zerami (wykładnik jest równy -127 w kodzie z nadmiarem lub zero w kodzie binarnym),
  • -0 – bit znaku jest ustawiony, reszta jest zerami (tu także wykładnik jest równy -127 w kodzie z nadmiarem lub zero w kodzie binarnym)
  • liczby małe – ang. denormalized numbers lub coraz częściej subnormal numbers – wykładnik jest równy -127 w kodzie z nadmiarem lub zero w kodzie binarnym, mantysa różna od 0, nie zakłada się wiodącego niezerowego bitu; są to liczby zbyt małe, aby mogły być reprezentowane z taką samą precyzją jak „zwykłe” liczby
  • – ustawione wszystkie bity wykładnika (wykładnik jest równy 128 w kodzie z nadmiarem lub 255 w kodzie binarnym), mantysa równa 0, może się pojawić np. jako wynik dzielenia przez 0
  • NaNang.: Not a Number, ustawione wszystkie bity wykładnika (wykładnik jest równy 128 w kodzie z nadmiarem lub 255 w kodzie binarnym), mantysa różna od 0, może się pojawić np. jako wynik pierwiastkowania liczby ujemnej. Definiuje się także „ciche” i „głośne/sygnalizujące” nie-liczby. Różnią się one tym, że w „cichych” nie-liczbach najstarszy bit mantysy jest równy 1, a w „głośnych/sygnalizujących” jest on równy 0. Pozostałe bity mantysy mogą być dowolne (można je wykorzystać do zakodowania typu napotkanego błędu).

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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya