logo

Gleitkommazahlen nach IEEE-Standard 754

Der IEEE-Standard für Gleitkomma-Arithmetik (IEEE 754) ist ein technischer Standard für Gleitkomma-Berechnungen, der 1985 von der IEEE etabliert wurde Institut für Elektro- und Elektronikingenieure (IEEE) . Der Standard behebt viele Probleme der verschiedenen Gleitkomma-Implementierungen, die ihre zuverlässige Verwendung erschweren und ihre Portabilität beeinträchtigen. Der IEEE-Standard 754 Gleitkomma ist heute die gebräuchlichste Darstellung für reelle Zahlen auf Computern, einschließlich Intel-basierten PCs, Macs und den meisten Unix-Plattformen.

Es gibt mehrere Möglichkeiten, Gleitkommazahlen darzustellen, aber IEEE 754 ist in den meisten Fällen die effizienteste. IEEE 754 besteht aus drei Grundkomponenten:



  1. Das Zeichen der Mantisse –
    Das ist so einfach wie der Name. 0 steht für eine positive Zahl, während 1 eine negative Zahl darstellt.
  2. Der voreingenommene Exponent –
    Das Exponentenfeld muss sowohl positive als auch negative Exponenten darstellen. Zum tatsächlichen Exponenten wird ein Bias hinzugefügt, um den gespeicherten Exponenten zu erhalten.
  3. Die normalisierte Mantisse –
    Die Mantisse ist Teil einer Zahl in wissenschaftlicher Schreibweise oder einer Gleitkommazahl, bestehend aus ihren signifikanten Ziffern. Hier haben wir nur 2 Ziffern, also O und 1. Eine normalisierte Mantisse ist also eine mit nur einer 1 links von der Dezimalstelle.

IEEE 754-Zahlen werden basierend auf den oben genannten drei Komponenten in zwei Teile unterteilt: einfache Genauigkeit und doppelte Genauigkeit.




TYPEN ZEICHEN VOREINGESCHLOSSENER EXPONENT NORMALISIERTE MANTISEN VOREINGENOMMENHEIT
Mit einfacher Genauigkeit 1 (31. Bit) 8(30-23) 23(22-0) 127
Doppelte Genauigkeit 1 (63. Bit)



11(62-52) 52(51-0) 1023

Beispiel -

Auswahl sortieren Java
85.125 85 = 1010101 0.125 = 001 85.125 = 1010101.001 =1.010101001 x 2^6 sign = 0 1. Single precision: biased exponent 127+6=133 133 = 10000101 Normalised mantisa = 010101001 we will add 0's to complete the 23 bits The IEEE 754 Single precision is: = 0 10000101 01010100100000000000000 This can be written in hexadecimal form 42AA4000 2. Double precision: biased exponent 1023+6=1029 1029 = 10000000101 Normalised mantisa = 010101001 we will add 0's to complete the 52 bits The IEEE 754 Double precision is: = 0 10000000101 0101010010000000000000000000000000000000000000000000 This can be written in hexadecimal form 4055480000000000>

Besondere Werte: IEEE hat einige Werte reserviert, die mehrdeutig sein können.

  • Null -
    Null ist ein spezieller Wert, der mit einem Exponenten und einer Mantisse von 0 angegeben wird. -0 und +0 sind unterschiedliche Werte, obwohl sie beide gleich sind.



  • Denormalisiert –
    Wenn der Exponent ausschließlich aus Nullen besteht, die Mantisse jedoch nicht, ist der Wert eine denormalisierte Zahl. Dies bedeutet, dass diese Zahl vor dem Binärpunkt keine führende Eins hat.

  • Unendlichkeit -
    Die Werte +unendlich und -unendlich werden mit einem Exponenten aus lauter Einsen und einer Mantisse aus lauter Nullen bezeichnet. Das Vorzeichenbit unterscheidet zwischen negativer Unendlichkeit und positiver Unendlichkeit. Operationen mit unendlichen Werten sind in IEEE gut definiert.

  • Keine Nummer (NAN) –
    Der Wert NAN wird verwendet, um einen Wert darzustellen, der einen Fehler darstellt. Dies wird dargestellt, wenn das Exponentenfeld nur aus Einsen mit einem Null-Vorzeichenbit oder einer Mantisse besteht, die nicht 1 ist, gefolgt von Nullen. Dies ist ein spezieller Wert, der verwendet werden kann, um eine Variable zu kennzeichnen, die noch keinen Wert enthält.
EXPONENT Mantisen WERT
0 0 genau 0
255 0

Unendlichkeit
0 nicht 0 denormalisiert
255 nicht 0

Keine Nummer (NAN)

Ähnliches gilt für doppelte Genauigkeit (ersetzt nur 255 durch 2049), Bereiche von Gleitkommazahlen:

Denormalisiert Normalisiert Ungefähre Dezimalzahl
Mit einfacher Genauigkeit ±2-149bis (1 – 2-23)×2-126 ±2-126bis (2 – 2-23)×2127 ± etwa 10-44,85auf ca. 1038,53
Doppelte Genauigkeit ±2-1074bis (1 – 2-52)×2-1022 ±2-1022bis (2 – 2-52)×21023 ± ungefähr 10-323,3auf ca. 10308.3

Der Bereich positiver Gleitkommazahlen kann in normalisierte Zahlen und denormalisierte Zahlen aufgeteilt werden, die nur einen Teil der Genauigkeit der Brüche nutzen. Da jede Gleitkommazahl einen entsprechenden negierten Wert hat, sind die oben genannten Bereiche symmetrisch um Null.

Es gibt fünf verschiedene numerische Bereiche, die Gleitkommazahlen mit einfacher Genauigkeit mit dem bisher vorgestellten Schema nicht darstellen können:

  1. Negative Zahlen kleiner als – (2 – 2-23) × 2127(negativer Überlauf)
  2. Negative Zahlen größer als – 2-149(negativer Unterlauf)
  3. Null
  4. Positive Zahlen kleiner als 2-149(positiver Unterlauf)
  5. Positive Zahlen größer als (2 – 2-23) × 2127(positiver Überlauf)

Überlauf bedeutet im Allgemeinen, dass Werte zu groß geworden sind, um dargestellt zu werden. Unterlauf ist ein weniger schwerwiegendes Problem, da er lediglich einen Präzisionsverlust bedeutet, der garantiert nahe bei Null liegt.

Die Tabelle des gesamten effektiven Bereichs endlicher IEEE-Gleitkommazahlen ist unten dargestellt:

Binär Dezimal
Einzel ± (2 – 2-23) × 2127 ungefähr ± 1038,53
Doppelt ± (2 – 2-52) × 21023 ungefähr ± 10308,25

Spezialoperationen -

Betrieb Ergebnis
n ÷ ±Unendlich 0
±Unendlich × ±Unendlich ±Unendlich
±ungleich Null ÷ ±0 ±Unendlich
±endlich × ±Unendlich ±Unendlich
Unendlichkeit + Unendlichkeit
Unendlichkeit – -Unendlichkeit
+Unendlichkeit
-Unendlichkeit – Unendlichkeit
-Unendlich + – Unendlich
- Unendlichkeit
±0 ÷ ±0 NaN
±Unendlich ÷ ±Unendlich NaN
±Unendlich × 0 NaN
NaN == NaN FALSCH