Gleitkommadarstellung / Gleitkommazahlen
Gleitkommazahlen sind gebrochene Zahlen und gehören zu den rationalen bzw. reellen Zahlen. Eine Gleitkommazahl ist die Exponentialdarstellung einer reellen Zahl. Man spricht von der Gleitkommadarstellung.
Gleitkommazahlen werden auch als Gleitpunktzahlen, Fließkommazahlen und Fließpunktzahlen bezeichnet. Im Englischen werden sie als floating point numbers bezeichnet.
Arithmetische Operationen mit Gleitkommazahlen sind erhebliche aufwendiger als mit Binärzahlen oder Zweierkomplementzahlen. Deshalb erledigt die Floating Point Unit (FPU) innerhalb eines Prozessors die Berechnungsaufgaben.
Die Gleitkommadarstellung hilft bei der Berechnung reeller Zahlen in einem Computer. Gleitkommazahlen lösen die Probleme im Hinblick auf Genauigkeit und Größe einer Zahl.
Festkommazahlen / Festpunktzahlen
Beim Speichern und Verarbeiten von gebrochenen Dezimalzahlen stellt sich die Frage, wie man diese Zahlen in die binäre Form bekommt. Hier gibt es die Möglichkeit, die Zahl vor und die Zahl hinter dem Komma getrennt zu behandeln und jeweils in ihre binäre Form zu bringen. In diesem Fall hat man jeweils eine feste Zahl an Stellen vor und hinter dem Komma. Das bedeutet, die Position des Kommas ist festgelegt. Deshalb spricht man dann von Festkommazahlen.
- 9,8 7 6 5 4 3 2 1 (große Genauigkeit)
- 9 8 7 6 5 4 3 2,1 (großer Wertebereich)
- 9 8 7 6 5,4 3 2 1 (Mischung?)
Hier ergibt sich das Problem, dass wir entweder einen großen Wertebereich oder eine große Genauigkeit haben. Doch eigentlich wollen wir es vor dem Komma so groß wie möglich. Und hinter dem Komma so genau wie möglich.
Wenn die Position des Kommas festgelegt ist, müssen wir uns entscheiden, ob wir große Zahlen oder eine große Genauigkeit haben wollen.
Gleitkommadarstellung
Gleitkommazahlen können beides. Großer Wertebereich und große Genauigkeit. Die Lösung ist die Normalisierung und Exponentialdarstellung. Hier muss nur noch der Wert hinter dem Komma und der Exponent gespeichert und verarbeitet werden.
Vorzeichen (V) * Mantisse (M) * Basis (B) hoch Exponent (E)
Die Mantisse bestimmt die Genauigkeit. Je größer die Mantisse, desto genauer ist die Zahl hinter dem Komma. Der Exponent bestimmt die Größe des Wertebereichs der Zahl.
Standardisierte Gleitkommazahlen nach IEEE 754 / IEC 60559:1989
Die binäre Form einer Gleitkommazahl entspricht: Vorzeichen (V) + Exponent (E) + Mantisse (M). Nach IEEE 754 bzw. IEC 60559:1989 sind zwei Gleitkommazahlen standardisiert. Dabei wird angegeben wie viele Bits der jeweilige Anteil umfasst. Die Aufteilung ist im Standard festgelegt. Der Exponent wird häufig auch als Charakteristik (Char) bezeichnet.
- Short Real / Einfache Genauigkeit / Single Precision / 32 Bit / Java-Datentyp: Float
- 1 Bit Vorzeichen, 8 Bit Exponent (mit Bias von 127), 23 Bit Mantisse
- Long Real / Doppelte Genauigkeit / Double Precision / 64 Bit / Java-Datentyp: Double
- 1 Bit Vorzeichen, 11 Bit Exponent (mit Bias von 1023), 52 Bit Mantisse
Außerhalb dieses Standards gibt es noch Minifloats mit 8 oder 16 Bit, die in speicherarmen Systemen verwendet werden. Die vierfache Genauigkeit entspricht 128 Bit (extended).
Die Sprache Java lehnt sich eng an IEEE 754 an, erfüllt die Norm aber nicht komplett.
Wertebereich von Gleitkommazahlen
Wertebereich | Seicherbedarf | Datentyp | Bemerkung | |
---|---|---|---|---|
- 3,40282347 * 1038 bis 3,40282347 * 1038 | 32 Bit | 4 Byte | Float | Single Precision |
- 1.79769313486231570 * 10308 bis 1.79769313486231570 * 10308 | 64 Bit | 8 Byte | Double | Double Precision |
128 Bit | 16 Byte | Extended Precision |