Skip to content

Gleitkommadarstellung Beispiel Essay

Gleitkommadarstellung / Gleitkommazahlen

Gleitkommazahlen sind gebrochene Zahlen und gehören zu den rationalen bzw. reellen Zahlen und beinhalten Zahlen mit Stellen vor und nach dem Komma. 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. Rechenwerke beherrschen die Verarbeitung von Gleitkommazahlen IEEE-754-konform. Schon seit dem 486er von Intel ist eine Gleitkomma-Einheit (Floating Point Unit, FPU) Bestandteil jedes Prozessors.

Gleitkommazahlen beinhalten Zahlen mit Stellen vor und nach dem Komma. Das Problem dabei ist, dass man nicht nur den Zahlenwert vor und nach dem Komma, sondern auch noch die Position des Kommas speichern und verarbeiten muss. Deshalb gibt es in der Informatik spezielle Datentypen für Gleitkommazahlen, die gesondert verarbeitet werden und für die die Gleitkommadarstellung gilt.

Da bei Kommazahlen festgelegte Stellen für die Vor- und Nachkommastellen eher hinderlich wären, hat man gei der Gleitkommadarstellung dafür gesorgt, dass das Komma jede beliebige Stelle einnehmen kann. Man spricht davon, dass das Komma "gleitet". Daher auch das Wort "Gleitkomma". Das bedeutet, wenn eine Zahl vor dem Komma viele Stellen hat, dann ist der Platz für die Anzahl der Stellen nach dem Komma geringer. Das gilt natürlich auch umgekehrt. Gleitkommazahlen lösen die Probleme im Hinblick auf Genauigkeit und Größe einer Zahl.

Es ist wichtig zu wissen, dass es reelle Zahlen in einem Computer eigentlich nicht gibt. Es gibt nur Ganzzahlen und gemäß IEEE 754 darstellbare Gleitkommazahlen. Die Gleitkommadarstellung hilft nur bei der Berechnung reeller Zahlen in einem Computer. Allerdings folgen Gleitkommazahlen anderen Rechenregeln, als es reelle Zahlen tun. Für Gleitkommazahlen gelten Besonderheiten, die wir bei reellen Zahlen nicht kennen und deshalb andere Rechenregeln anwenden müssen.

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 (Exponentialdarstellung)

Gleitkommazahlen können beides. Großer Wertebereich und große Genauigkeit. Die Lösung ist die Normalisierung und Exponentialdarstellung. Hier muss nur der Wert hinter dem Komma und der Exponent gespeichert und verarbeitet werden. Die Position des Kommas ergibt sich aus dem Exponenten.

Eine Gleitkommazahl ist die Exponentialdarstellung einer reellen Zahl. Man spricht von der Gleitkommadarstellung.

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.

Beispielhaft die Gleitkomma-Darstellung im Taschenrechner:

1,2345E24 = 1,2345 x 10 hoch 24

Die Darstellung auf dem Taschenrechner-Display sagt aus, dass das Komma um 24 Stellen nach rechts verschoben gehört. Ein negativer Exponent sagt aus, dass das Komma nach links verschoben gehört.

Die Zahl vor dem E ist die Mantisse (M), die Zahl dahinter ist der Exponent (E) auf Basis (B) von 10. In diesem Beispiel also 10 hoch 24. Weil man mit einem Taschenrechner in der Regel auf Basis von 10 rechnet, wird die 10 im Taschenrechner nicht angezeigt. Auf die Angabe des Vorzeichens (V) "+" wurde verzichtet.

Besonderheit und Probleme bei der Gleitkommadarstellung

Ein Problem bei der Gleitkommadarstellung ist die Null ("0"). Die ist im Prinzip nicht darstellbar. Weil die Mantisse immer mit einer "verborgenen" Eins beginnt. Deshalb müssen bei einer Null alle Exponenten- und Mantissenbits "0" sein. Das Vorzeichen-Bit ist dabei unerheblich.

Sind alle Exponentenbits "0", handelt es sich um eine denormalisierte Zahl. Sie haben in der Binärdarstellung eine Null vor dem Komma. In der Mantisse stehen nur die binären Nachkommastellen. Damit ist es möglich, Zahlen darstellen zu können, die Null sind oder nahe bei der Null liegen.

Eine weitere Besonderheit ist, wenn alle Exponentenbits "1" sind und die Mantisse "0", dann würde das unendlich bedeuten. Andere Werte würden "keine Zahl" bedeuten. Im Englischen wäre das "Not a Number, kurz "NaN". Diese Zahl entsteht immer dann, wenn man versucht, nicht errechenbare Zahlen zu erhalten. Zum Beispiel die Wurzel oder den Logarithmus aus einer negativen Zahl. Oder unendlich minus unendlich. Oder Null durch Null. Dann ist das Ergebnis immer "NaN".

Ein Hauptproblem, dass bei der Gleitkommadarstellung auftritt, sind Rundungsfehler. Bringt man den Wert "0,2" in die binäre Gleitkommadarstellung und rechnet die Bitfolge anschließend wieder zurück, dann kommt der Wert "0,199951171875" heraus. Mit solchen Ungenauigkeit muss man leben, wenn man mit Gleitkommazahlen arbeitet.

Standardisierte Gleitkommazahlen nach IEEE 754 / IEC 60559

Die binäre Form einer Gleitkommazahl entspricht: Vorzeichen (V) + Exponent (E) + Mantisse (M).

Die in IEEE 754-2008 definierten Gleitkommazahlen mit 32, 64 und 128 Bit unterscheiden sich in ihrer Genauigkeit. Die Genauigkeit hängt von der Anzahl der Stellen der Mantisse ab. Die Bezeichnungen "einfache", "doppelte" und "vierfache Genauigkeit" bezieht sich nicht auf den Gleitkommatyp 32, 64 und 128 Bit, sondern die darin darstellbare Genauigkeit bei der Nachkommastelle mit 7, 16 und 34 Dezimalstellen. Die Aufteilung in Vorzeichen, Exponent und Mantisse 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

Computersysteme und Programmiersprachen speichern und verarbeiten Gleitkommazahlen als "float" (einfache Genauigkeit, 32 Bit), "double" (doppelte Genauigkeit, 64 Bit) und "extended" (vierfache Genauigkeit, 128 Bit).
Außerhalb des Standards gibt es noch Minifloats mit 8 oder 16 Bit, die in speicherarmen Systemen verwendet werden.
Die Programmiersprache Java lehnt sich eng an IEEE 754 an, erfüllt die Norm aber nicht komplett.

Wertebereich von Gleitkommazahlen

GrößeMantisseExponentminimaler Exponentmaximaler Exponentsignifikate Dezimalstellenkleinste normalisierte Zahlgrößte ZahlWertebereichSeicherbedarfDatentyp
Binärformate
16 Bit10 Bit5 Bit-14153 bis 4+-6,104 x 10-5+-65504 16 Bit
(2 Byte)
 
32 Bit23 Bit8 Bit-126127 7 bis 8+-1,175 x 10-38+-3,403 x 1038von - 3,40282347 x 1038
bis 3,40282347 x 1038
32 Bit
(4 Byte)
Float (Single Precision)
64 Bit52 Bit11 Bit-1022102315 bis 16+-2,225 x 10-308+-1,798 x 10308von - 1.79769313486231570 x 10308
bis 1.79769313486231570 x 10308
64 Bit
(8 Byte)
Double (Double Precision)
128 Bit112 Bit15 Bit-163821638333 bis 34+-3,362 x 10-4932+-1,190 x 104932 128 Bit
(16 Byte)
 
Dezimalformate
32 Bit21 bis 23 Bit7,5 Bit-95967+-10-95+-9,999999 x 1096 32 Bit
(4 Byte)
 
64 Bit51 bis 53 Bit9,5 Bit-38338416+-10-383+-9,99... x 10384
(15 Nachkommastellen)
 64 Bit
(8 Byte)
 
128 Bit111 bis 113 Bit13,5 Bit-6143614434+-10-6143+-9,99... x 106144
(33 Nachkommastellen)
 128 Bit
(16 Byte)
 

Rechnen mit Gleitkommazahlen

Beim Rechnen mit Gleitkommazahlen gelten die Regeln der Schulmathematik nicht mehr. Das liegt an den Genauigkeitsverlusten. Der Grund ist, dass sich Dezimalzahlen nicht exakt binär darstellen lassen. Ein Beispiel: Die Zahl 0,2 hat als Binärzahl unendlich viele Stellen, von denen man aber nur eine begrenzte Anzahl speichern kann. Das bedeutet, sie müssen irgendwann gekürzt bzw. gerundet werden. Das führt dann zu Ungenauigkeiten, die mal mehr mal weniger stark ausfallen.

Beim Addieren von Gleitkommazahlen spielt zum Beispiel die Reihenfolge der Werte eine große Rolle. So ist es sinnvoll zuerst die kleinen Werte zu addieren und am Schluss die größte Zahl zu addieren.
Eine Alternative ist die Kahan-Summation, ein Algorithmus, der neben der Summe noch eine Korrekturzahl mitführt. Die Korrekturzahl nimmt Ziffern auf, die bei der eigentlichen Addition verloren gegangen sind.
Auch beim Subtrahieren entstehen Genauigkeitsverluste, wenn die beiden Zahlen sehr dicht beieinanderliegen.
Bei Berechnungen, bei denen dividiert und multipliziert wird, kommt es zu erheblichen Ungenauigkeiten. Beispiel: Eine 1 wird durch 3 geteilt. Das Ergebnis wird anschließend mit 3 multipliziert. Rein rechnerisch kommt dabei 1 heraus. Bei einer Gleitkommaberechnung aber 0,999...

Hier hilft nur mit echten Zahlen zu rechnen, die intern als Bruch mit ganzzahligen Zählern und Nennern arbeiten. Jeden Rundungsfehler kann man auch damit nicht vermeiden. Schwierigkeiten gibt es auch immer dann, wenn Ergebnisse berechnet werden, die im Allgemeinen nicht rational sind.

Die Erkenntnis ist, dass binäre Gleitkommazahlen zum Beispiel für finanzmathematische Berechnungen ungeeignet sind. Selbst dann, wenn man mit Millionen-Beträgen arbeitet, kommt es immer noch auf den Cent genau an. Und deshalb haben Programmiersprachen dafür spezielle Zahlenformate, die intern ähnlich arbeiten wie "float" oder "double", aber als Exponenten die 10 verwenden.
Denkbar wäre mit Hundertstel Cent zu rechnen, was einer Festkommazahl mit vier Nachkommastellen entsprechen würde. Hier muss man Rundungen, Konvertierungen und die Repräsentation der Zeichenfolge selber implementieren. Ein dezimales Gleitkommaformat ist da viel besser.

Umrechnen in die Gleitkommadarstellung

Der prinzipielle Ablauf besteht darin, die Werte vor und nach dem Komma in duale Zahlen umzurechnen, zusammenzusetzen, zu normalisieren, den neuen Exponenten zu ermitteln, das Vorzeichen zu bilden und anschließend die Werte Vorzeichen, Charakteristik (Exponent) und Mantisse zusammen zu setzen.

Zahlen in der Informatik

Weitere verwandte Themen:

Camping with Horses

Bear Creek Equestrian Camp – Jessieville Winona Ranger District

A small primitive campground connected to the Bear Creek Equestrian Trail.
Most of the developed recreation areas are open from April through September. However, selected areas remain open year-round to accommodate fall and winter visitors. Specific information for each site can be found by selecting from the list in the box to the right. A fee is charged to use many Federal recreation areas, including some on the national forests.

The Ouachita National Forest is participating in the Federal Lands Recreation Enhancement Program. Under this program 80% of the user fees collected are returned directly to the recreation site for facility maintenance and improvements. In the past, all but 15% of these receipts went to the general treasury fund. These fees vary based on the type and level of services provided at each area.

Overnight Layovers

Listings Coming Soon!

Vacations/Destinations

Listings Coming Soon!