Gleitkommazahl
Eine Gleitkommanzahl (auch: Fließkommazahl) ist eine digitale Näherung für eine reelle Zahl, die in Computern verwendet wird. Eine Gleitkommaberechnung ist eine arithmetische Operation, die mit Gleitkommazahlen ausgeführt wird.
Beispiele von Gleitkommazahlen:
- 5.0
- 9/7
- 3,1419 (keine weiteren Stellen)
- 8E17 (äquivalent zu 8·1017
Bei Gleitkommazahlen ist nicht die absolute Anzahl von Stellen konstant, sondern die Anzahl signifikanter Stellen.
Das heißt, dass man eine Zahl a durch zwei Zahlen m und e solcherart darstellen kann, dass a = m · be gilt. Zur Darstellung von Gleitkommazahlen wählt man eine beliebige Basis b (auch: Radix)und eine Präzision p, die angibt, wieviele Ziffern gespeichert werden soll.
Die Zahl m wird Mantisse genannt und ist eine Zahl mit p Stellen der Form +-z,zzz...zzz . z ist hierbei stellvertretend für eine Ziffer zwischen 0 und b-1. Eine Mantisse m heißt normalisiert, wenn ihre erste Ziffer ungleich Null ist. Bei Darstellungen von Gleitkommazahlen, die ein Vorzeichenbit verwenden, wird außerdem verlangt, dass die erste Ziffer positiv ist.
e wird Exponent genannt. (Siehe auch: Logarithmus)
Durch die Darstellung von Gleitkommazahlen mit Mantisse und Exponent erreicht man, dass mehr Zahlen in beschränkten Speicherplatz untergebracht werden können als bei Festkommazahlen.
Beispiel:
Eine Gleitkommazahl mit vier dezimalen Stellen (b = 10, p = 4) kann dazu verwendet werden, 4321 oder 0,00004321 darzustellen. Es wird allerdings in Kauf genommen, dass bei einer derartigen Darstellung Zahlen gerundet werden. So wird etwa aus 432,123 der Wert 432,1 und aus 43212,3 der Wert 43210. In der Praxis ist die Anzahl der verwendeten Stellen meist größer als vier.
Darstellung
Binäre Gleitkommazahlen werden analog zur wissenschaftlichen Schreibweise von Dezimalzahlen dargestellt. In der wissenschaftlichen Schreibweise wird die Zahl 0,00001234 als 1,234·10-5 geschrieben, oder die Zahl 123400 als 1,234·105. Die wissenschaftliche Schreibweise verwendet dabei eine normalisierte Darstellung.
Für die Darstellung als Gleitkommazahl wird eine Zahl in drei Teile aufgespalten. Ein Vorzeichenbit zeigt dabei negative Werte der Mantisse an. Für die Mantisse wird eine gewisse Anzahl von Bits festgelegt, sie wird im Binärsystem gespeichert. Ebenso wird der Exponent als gewisse Anzahl von Bits gespeichert. Exponenten können ebenso wie die Mantisse negativ sein. Meist wird zur Darstellung negativer Werte im Exponenten eine positive Zahl gewählt und ein Bias festgelegt, um der zum Exponent addiert wird. Aus einem Exponenten e = -1 wird bei einem Bias von 127 etwa 126. Das gebräuchliche IEEE Format für Gleitkommazahlen verwendet eine normalisierte Darstellung der Mantisse. Dadurch ist das Position des Dezimalkommas implizit bekannt. Ebenso ist die Basis b = 2 implizit durch die binäre Codierung aller Zahlen bekannt.
Hidden bit
Bei der Darstellung normalisierter Mantissen im Binärsystem kann ein Bit eingespart werden. Da die erste Stelle einer normalisierten Zahl immer ungleich 0 ist, ist diese Stelle im Binärsystem immer gleich 1. Das heißt, dass diese erste Eins nicht explizit gespeichert werden muss, da dies implizit bekannt ist. Das erwähnte IEEE Format für Gleitkommazahlen macht von dieser Einsparungsmöglichkeit Gebrauch.
Allerdings bedeutet die Verwendung eines derartigen hidden Bit, dass die Null nicht mehr direkt als Gleitkommazahl gespeichert werden kann. Für die Darstellung der Null wird deshalb meist eine bestimmte Bitfolge reserviert.
Gleitkommazahlen in der Digitaltechnik
Die oben erwähnten Beispiele sind im Dezimalsystem angegeben, das heißt mit einer Basis b = 10. Computer verwenden stattdessen das Binärsystem mit einer Basis b = 2. Gleitkommazahlen werden in Computern normalerweise als Folgen von 32 Bit ("einfache Genauigkeit") oder 64 Bit ("doppelte Genauigkeit") dargestellt. Manche Prozessoren erlauben auch längere Gleitkommazahlen, so kennen die von der Intel x86 Serie abgeleiteten Prozessoren (u.a. Intel Pentium und AMD Athlon) eine Gleitkommazahldarstellung mit 80 Bit für Zwischenergebnisse. Manche Systeme erlauben auch Gleitkommazahlen mit 128 Bit.
Die IEEE hat die Darstellung von Gleitkommazahlen in ihrem Standard IEEE 754 reglementiert; beinahe alle modernen Prozessoren folgen diesem Standard. Ausnahmen sind einige IBM Mainframe-Systeme und Cray Supercomputer.