Wenn ein Computer mit Kommazahlen rechnet, wirkt das oft ganz selbstverständlich. Du tippst zum Beispiel 3.25 ein und erwartest ein passendes Ergebnis. Im Inneren muss der Computer aber entscheiden, wie er diese Zahl mit endlich vielen Bits speichert. Genau dafür gibt es Gleitkommazahlen.
- Du verstehst, warum Computer Gleitkommazahlen benutzen.
- Du kannst Mantisse, Basis, Exponent und Vorzeichen erklären.
- Du erkennst den Unterschied zwischen Festkomma und Gleitkomma.
- Du weißt, warum Gleitkommazahlen manchmal ungenau sind.
Warum braucht man Gleitkommazahlen?
In der Informatik müssen Zahlen sehr unterschiedlich groß sein können. Eine Temperatur wie 36,7 ist klein und übersichtlich. Eine Entfernung im Weltall oder eine winzige Messgröße in der Physik kann dagegen sehr viele Nullen haben.
Eine Gleitkommazahl ist eine Art, Kommazahlen so zu speichern, dass sehr kleine und sehr große Zahlen möglich sind. Das Komma hat dabei keine feste Stelle. Es kann gedanklich nach links oder rechts gleiten.
Die Zahl 4200000 kann man als \(4{,}2 \cdot 10^6\) schreiben.
Die Zahl 0,00042 kann man als \(4{,}2 \cdot 10^{-4}\) schreiben.
In beiden Fällen steht vorne \(4{,}2\). Der Exponent entscheidet, wohin das Komma verschoben wird.
Eine Gleitkommazahl speichert nicht einfach alle Ziffern der Zahl. Sie speichert eine kurze Zahlenform und dazu eine Information, wie weit das Komma verschoben wird.
Interaktive Quizfrage wird geladen ...
Festkomma und Gleitkomma
Eine Festkommazahl ist eine Zahlendarstellung, bei der die Position des Kommas vorher festgelegt ist. Zum Beispiel könnten immer genau zwei Stellen nach dem Komma erlaubt sein. Das passt gut zu Geldbeträgen wie 12,99 Euro.
Bei einer Gleitkommazahl ist die Kommaposition nicht fest. Stattdessen wird die Zahl in eine Form mit einem Faktor und einer Potenz zerlegt. Dadurch kann dieselbe Speichergröße einen viel größeren Zahlenbereich abdecken.
Festkomma mit zwei Nachkommastellen:
12,34
99,95
0,50
Das Komma steht immer zwei Stellen vor dem Ende.
Gleitkomma:
\(1{,}234 \cdot 10^1 = 12{,}34\)
\(9{,}995 \cdot 10^1 = 99{,}95\)
\(5{,}0 \cdot 10^{-1} = 0{,}5\)
Festkomma ist oft gut, wenn ein fester Bereich und feste Genauigkeit wichtig sind. Gleitkomma ist gut, wenn sehr verschiedene Größen vorkommen.
Interaktiver Lückentext wird geladen ...
Die Bauteile einer Gleitkommazahl
Eine Gleitkommazahl besteht aus mehreren Teilen. Das Vorzeichen sagt, ob die Zahl positiv oder negativ ist. Die Mantisse ist der Teil, der die wichtigen Ziffern der Zahl enthält. Die Basis ist das Zahlensystem, mit dem gerechnet wird. Der Exponent ist die Hochzahl, die angibt, wie weit das Komma verschoben wird.
Die allgemeine Idee lautet:
Im Dezimalsystem ist die Basis 10. Im Computer ist die Basis meistens 2, weil Computer mit Bits arbeiten.
Das Vorzeichen gibt an, ob eine Zahl positiv oder negativ ist.
Eine Mantisse enthält die wichtigen Ziffern einer Gleitkommazahl.
Die Basis ist die Grundlage des Zahlensystems. Im Dezimalsystem ist sie 10, im Binärsystem ist sie 2.
Ein Exponent ist die Hochzahl, die die Größenordnung und damit die Kommaposition bestimmt.
Die Zahl \(-3{,}6 \cdot 10^4\) hat diese Teile:
Vorzeichen: negativ
Mantisse: \(3{,}6\)
Basis: \(10\)
Exponent: \(4\)
Der Wert ist \(-36000\).
Die Mantisse beschreibt die Ziffern. Der Exponent beschreibt die Größenordnung.
Interaktive Quizfrage wird geladen ...
Normalisierte Schreibweise
Eine normalisierte Schreibweise ist eine einheitliche Form für Gleitkommazahlen. Dabei steht vor dem Komma genau eine Ziffer, die nicht 0 ist. So bekommt dieselbe Zahl nicht viele verschiedene Schreibweisen.
Im Dezimalsystem schreibt man zum Beispiel \(4200\) normalisiert als \(4{,}2 \cdot 10^3\). Man könnte auch \(42 \cdot 10^2\) schreiben, aber das ist nicht normalisiert, weil vor dem Komma zwei Ziffern stehen.
\(0{,}0075\) wird normalisiert zu:
\(7{,}5 \cdot 10^{-3}\)
Das Komma wurde nach rechts verschoben, bis eine Ziffer vor dem Komma steht. Weil die Zahl dadurch vorne größer aussieht, gleicht der negative Exponent das wieder aus.
\(125{,}4\) wird normalisiert zu:
\(1{,}254 \cdot 10^2\)
Das Komma wurde zwei Stellen nach links verschoben. Deshalb steht beim Exponenten die 2.
Normalisieren heißt: Schreibe die Zahl so, dass genau eine von 0 verschiedene Ziffer vor dem Komma steht.
Interaktiver Lückentext wird geladen ...
Gleitkommazahlen im Binärsystem
Ein Bit ist die kleinste Informationseinheit im Computer. Es kann den Wert 0 oder 1 haben. Weil Computer mit Bits arbeiten, speichern sie Gleitkommazahlen meistens im Binärsystem.
Bei normalisierten Binärzahlen ungleich 0 steht immer eine 1 vor dem Komma. Diese führende 1 muss bei vielen Formaten nicht extra gespeichert werden. Dadurch bleibt mehr Platz für die Nachkommastellen der Mantisse.
Ein Bias ist ein fester Wert, der zum Exponenten addiert wird, bevor er gespeichert wird. So kann der Computer auch negative Exponenten speichern, ohne ein eigenes Minuszeichen im Exponentenfeld zu brauchen.
Die Dezimalzahl 3,25 ist im Binärsystem \(11{,}01_2\).
Normalisiert wird daraus:
Die Mantisse enthält die Ziffern nach der führenden 1. Der Exponent ist 1.
Häufige Speicherformate sind 32 Bit und 64 Bit. Bei 32 Bit spricht man oft von float. Bei 64 Bit spricht man oft von double. Mehr Bits bedeuten meistens mehr Genauigkeit und einen größeren Zahlenbereich.
Interaktive Quizfrage wird geladen ...
Genauigkeit und typische Fehler
Gleitkommazahlen haben nur eine begrenzte Anzahl von Bits. Deshalb können sie nicht jede Kommazahl exakt speichern. Manche Zahlen werden nur angenähert.
Eine Rundung ist eine Annäherung an den nächstpassenden speicherbaren Wert. Ein Überlauf entsteht, wenn eine Zahl zu groß für das Format ist. Ein Unterlauf entsteht, wenn eine Zahl zu klein ist und in Richtung 0 verschwindet.
Das kennst du vielleicht aus Programmiersprachen: Eine Rechnung wie \(0{,}1 + 0{,}2\) kann intern ein Ergebnis liefern, das ganz leicht neben \(0{,}3\) liegt. Das passiert nicht, weil der Computer falsch addiert. Es passiert, weil manche Dezimalzahlen im Binärsystem nicht endlich darstellbar sind.
Außerdem ist die Genauigkeit bei Gleitkommazahlen meist relativ. Das bedeutet: Bei großen Zahlen werden auch die Abstände zwischen zwei direkt darstellbaren Zahlen größer. Eine kleine Änderung kann dann verschwinden, obwohl sie mathematisch vorhanden wäre.
Stell dir vor, du darfst nur drei wichtige Ziffern speichern.
Die Zahl 1,23456 wird dann vielleicht zu 1,23 gerundet.
Die gespeicherte Zahl ist nah dran, aber nicht exakt gleich.
Wenn du eine sehr kleine Zahl zu einer sehr großen Zahl addierst, kann die kleine Zahl im Ergebnis verschwinden.
\(100000000 + 0{,}000001\) wird in einem groben Format vielleicht wieder als \(100000000\) gespeichert.
Die kleine Änderung ist dann zu fein für die verfügbare Genauigkeit.
Gleitkommazahlen sind praktisch, aber nicht automatisch exakt. Vergleiche Ergebnisse deshalb oft mit einer kleinen Toleranz statt mit exakter Gleichheit.
Interaktive Quizfrage wird geladen ...
Besondere Werte
Übliche Gleitkommaformate nach IEEE 754 kennen neben normalen Zahlen auch besondere Werte. Unendlich ist ein Sonderwert für positive oder negative Ergebnisse außerhalb des normalen Zahlenbereichs. Er kann zum Beispiel bei einem Überlauf oder bei einer Division einer Zahl ungleich 0 durch 0 entstehen. NaN bedeutet Not a Number und steht für ein Ergebnis, das keine gültige Zahl ist.
NaN kann zum Beispiel bei einer undefinierten Rechnung entstehen. Wichtig ist: NaN ist keine normale Zahl. Es ist ein Signal, dass bei der Rechnung etwas Besonderes passiert ist.
Unendlich ist ein Sonderwert für Ergebnisse außerhalb des normalen Zahlenbereichs. Es gibt positives und negatives Unendlich.
NaN ist ein Sonderwert für ein ungültiges oder nicht sinnvoll bestimmbares Zahlenergebnis.
Wenn ein Gleitkommaformat eine riesige positive Zahl nicht mehr speichern kann, kann daraus positives Unendlich werden.
Wenn eine Rechnung kein sinnvolles Zahlenresultat hat, kann daraus NaN werden.
Der Standard IEEE 754 legt unter anderem fest, wie normale Zahlen, Unendlich und NaN gespeichert und behandelt werden.
Interaktive Quizfrage wird geladen ...
Zusammenfassung
Eine Gleitkommazahl speichert Kommazahlen mit beweglicher Kommaposition. Sie besteht aus Vorzeichen, Mantisse, Basis und Exponent. Die Mantisse enthält die wichtigen Ziffern, der Exponent bestimmt die Größenordnung.
Interaktive Lernkarten wird geladen ...
Gleitkommazahlen sind ein Kompromiss: Sie sparen Speicher und decken viele Größenordnungen ab, können aber Rundungsfehler haben.
Interaktive Quizfrage wird geladen ...
Mit Google fortfahren