|
Die Norm IEEE 754 definiert Standarddarstellungen für Gleitkommazahlen in Computern und legt genaue Verfahren für
die Durchführung mathematischer Operationen fest.
Es werden zwei Standarddatenformate mit 32 Bit ("single precision") bzw. 64 Bit ("double precision") Speicherbedarf
definiert.
Die allgemeine Darstellung einer Fließkommazahl besteht aus:
- einem Vorzeichenbit (1: negativ, 0: positiv),
- Exponentenbits,
- Mantissenbits.
Die Anzahl der Exponentenbits legt fest, aus welchem Bereich die darstellbaren Zahlen stammen (s.u.), während die Anzahl der
Mantissebits festlegt, wie genau diese Zahlen angegeben werden können.
| Typ |
Gesamtgröße |
Mantisse |
Exponent |
Bias |
| single |
32 bit |
23 bit |
8 bit |
127 |
| double |
64 bit |
52 bit |
11 bit |
1023 |
Die Anordnung der Bits zeigt die nachfolgende Abbildung.

Neben diesen beiden Formaten werden "erweiterte Formate" definiert. Es wird aber nicht definiert, wie groß die Genauigkeit
dieser Formate ist.
| Inhaltsverzeichnis |
|
1 Darstellbare Werte
2 Rechenregeln
3 Geschichtliches
4 Siehe auch
|
Darstellbare Werte
Sind im Exponent einer Zahl alle Bits gesetzt (= 1) oder alle gelöscht (=0) sind, so hat diese Fließkommazahl eine gesonderte
Bedeutung:
| Exponent |
Mantisse |
Bedeutung |
| 111...111binär |
000...000binär |
+/- Unendlich |
| 111...111binär |
? 000...000binär |
"Keine Zahl" (NaN = Not a Number) |
| 000...000binär |
000...000binär |
+/- 0. (Null) |
| 000...000binär |
?000...000binär |
Denormalisierte Fließkommazahl |
| 000...001binär bis 111...110binär |
beliebing |
Normalisierte Fließkommazahl |
- "Unendlich"
- Repräsentiert Zahlen, deren Betrag zu groß sind, um dargestellt zu werden. Es wird zwischen +"Unendlich" und -"Unendlich"
unterschieden. Die Berechnung von 1.0/0.0 ergibt per Definition ebenfalls +"Unendlich".
- "Keine Zahl" (NaN)
- Damit werden ungültige (oder nicht definierte) Ergebnisse dargestellt, z. B. wenn versucht wurde, die Quadratwurzel aus einer negativen Zahl zu berechnen. Einige "unbestimmte
Ausdrücke" haben als Ergebnis "keine Zahl", zum Beispiel 0.0/0.0 oder "Unendlich" - "Unendlich". Außerdem werden NaNs in
verschiedenen Anwendungsbereichen benutzt, um "Kein Wert" oder "Unbekannter Wert" darzustellen. Insbesondere der Wert mit dem
Bitmuster 111...111 wird oft für eine "nicht initialisierte Fließkommazahl" benutzt.
- Null
- Null repräsentiert die absolute Null. Auch Zahlen, die zu klein sind, um dargestellt zu werden (Unterlauf) werden auf Null
gerundet. Ihr Vorzeichen bleibt dabei erhalten. Negative kleine Zahlen werden so zu -0.0 gerundet, positive Zahlen zu +0.0. Beim
direkten Vergleich werden jedoch +0.0 und -0.0 als gleich angesehen.
- Denormalisierte Zahl
- Ist eine Zahl zu klein, um in normalisierter Form mit dem kleinsten, von Null verschiedenen Exponenten gespeichert zu werden,
so werden sie als "Denormalisierte Zahl" gespeichert. Ihre Interpretation ist nicht mehr
sondern . de ist dabei der Wert des kleinsten "normalen" Exponenten. Damit lässt sich die Lücke zwischen der
kleinsten normalisierten Zahl und Null schließen. Denormalisierte Zahlen haben jedoch eine geringere Genauigkeit (Die Anzahl der
signifikanten Stellen in der Mantisse nimmt zur Null hin ab) als normalisierte Zahlen.
- Normalisierte Zahl
- In allen anderen Fällen berechnet sich der Wert v der Zahl als
. Hierbei
ist s das Vorzeichenbit, mi sind die Bits der Mantisse und
ej die Bits des Exponenten. Der Wert a ist die Abweichung
(engl.: bias), die aus der Tabelle oben entnommen werden kann.
Als darstellbarer Zahlenbereich ergibt sich:
single: ±1,18·10-38 ... ±3,40·10+38
double: ±2,23·10-308 ... ±1,80·10+308
Rechenregeln
Geschichtliches
Die Norm geht auf die Erkenntnis zurück, dass identische Programme auf unterschiedlichen Hardwarearchitekturen ('Plattformen')
unterschiedliche Ergebnisse liefern können. Die Norm soll sicher stellen, dass bei identischen Rechenwegen identische Resultate
auf unterschiedlichen Plattformen erzielt werden. (Sie garantiert jedoch nicht, dass unterschiedliche Rechenwege zu identischen
Ergebnissen führen.)
Siehe auch
- Exponent (Mathematik)
- Mantisse
|