Informatik

IEEE-Gleitkomma-Zahlenformat

 aufwärts

Kommazahlen werden im Computer meist anders dargestellt als ganze Zahlen. Der Grund liegt darin, dass für die Darstellung einer Zahl jeweils nur eine feste Anzahl von Bits, z.B. 32, zur Verfügung steht.

Mit 32 Bit lassen sich die ganzen Zahlen im Bereich { -231, ..., +231-1 }  =  { -2.147.483.648, ..., +2.147.483.647 } darstellen. Um eine Kommazahl darzustellen, kann man nun die Ziffern vor dem Komma und die Ziffern nach dem Komma jeweils als ganze Zahlen auf­fassen und mit jeweils 32 Bit speichern. Das Ergebnis ist eine 64 Bit lange sogenannte Fest­komma­zahl (engl.: fixed point number).

Nachteilig ist jedoch, dass sich in 64-Bit-Festkomma-Darstellung keine betragsmäßig sehr großen oder sehr kleinen Zahlen darstellen lassen, etwa die Masse der Sonne externer Verweis oder die Masse des Elektrons externer Verweis.

Es wird daher für Kommazahlen eine andere Form der Darstellung verwendet.

Idee

Jede Zahl z lässt sich in der Form z = m · be darstellen. Hierbei sind m die Mantisse, b die Basis der Zahlen­darstellung und e der Exponent. Im Dezimal­system ist b = 10. Dies ist die "wissen­schaftliche Notation", wie sie auch auf Taschen­rechnern gebräuchlich ist.

Beispiel:  Die Zahl 487 lässt sich als 4,87 · 102 schreiben mit 4,87 als Mantisse, 10 als Basis und 2 als Exponent.

Die Zahl 0,000007 lässt sich als 7,0 · 10-6 schreiben.

Die Zahl -12,55 lässt sich als -1,255 · 101 schreiben.

Die Zahl 3,5 lässt sich als 3,5 · 100 schreiben.

Die Zahl 12000000 lässt sich als 1,2 · 107 schreiben.

Offenbar lässt sich 3,5 auch als 350 · 10-2 oder als 0,35 · 101 schreiben. Die Darstellung ist also nicht eindeutig, das Komma kann in der Mantisse hin und her "gleiten", wobei sich der Exponent jeweils ändert. Aus diesem Grund heißt eine in wissen­schaftlicher Notation dargestellte Zahl auch Gleit­komma­zahl (engl.: floating point number).

Eine eindeutige Form lässt sich dadurch erreichen, dass man das Komma in der Mantisse soweit nach vorn oder hinten gleiten lässt und den Exponenten entsprechend anpasst, bis vor dem Komma genau eine Ziffer  ≠ 0 steht.

Definition:  Eine Gleit­komma­zahl heißt normalisiert, wenn die Mantisse vor dem Komma genau eine Ziffer  ≠ 0 enthält.

Offenbar lässt sich jede Zahl außer der Null in normalisierte Gleitkomma­darstellung bringen.

Der Vorteil der Gleitkomma­darstellung besteht darin, dass alle Zahlen mit derselben relativen Genauigkeit dargestellt werden, sowohl betragsmäßig sehr kleine als auch sehr große Zahlen. Wenn bei der sehr kleinen Zahl 1,23456789 · 10-12 die letzte Ziffer aufgerundet wird, entsteht ein prozentual genauso großer Fehler, wie wenn bei der sehr großen Zahl 1,23456789 · 1014 die letzte Ziffer aufgerundet wird.

Gleitkommadarstellung im IEEE-Format

Im Computer werden Zahlen zur Basis 2 dargestellt. Entsprechend ist die Basis b = 2, und die Mantisse m und der Exponent e werden als Binärzahlen dargestellt.

Im IEEE-Format (IEEE-Norm 754) ist zunächst die Anzahl der Bits festgelegt, mit denen Mantisse und Exponent jeweils dargestellt werden. Es gibt zwei Varianten: das einfach genaue Format mit insgesamt 32 Bit und das doppelt genaue Format mit insgesamt 64 Bit. Bild 1 zeigt jeweils die Aufteilung der zur Verfügung stehenden Bits auf die Anteile Vorzeichen, Exponent und Mantisse.

Bild 1: IEEE-Gleitkommaformat
Bild 1: IEEE-Gleitkommaformat
Vorzeichen

Die Mantisse wird in Betrag-Vorzeichen-Darstellung gespeichert. D.h. wenn die Mantisse negativ ist, ist dies daran zu erkennen, dass das Vorzeichen-Bit 1 ist. Im Mantissen­feld steht der (positive) Betrag der Mantisse.

Mantisse

Im IEEE-Format werden die Gleit­komma­zahlen grund­sätzlich normalisiert gespeichert, wenn dies möglich ist. Nicht möglich ist dies, wenn durch das Gleiten des Kommas der Exponent so groß oder so klein wird, dass er nicht mehr mit den zur Verfügung stehenden Bits darstellbar ist. Normalisiert heißt, dass in der Mantisse vor dem Komma genau eine Ziffer  ≠  0 steht. Im Binärsystem gibt es jedoch nur eine einzige Ziffer  ≠  0, dies ist die 1. Da also jede normalisierte binäre Mantisse mit einer 1 beginnt, braucht diese 1 nicht gespeichert zu werden. Tatsächlich wird im IEEE-Format die 1 vor dem Komma nicht explizit gespeichert, sondern sozusagen implizit angenommen. Nur die Nach­komma­stellen der Mantisse werden gespeichert.

Exponent

Der Exponent wird in sogenannter Ver­schiebungs-Darstellung (engl.: biased representation) 1) gespeichert. Aus dem dar­gestellten Binärwert des Exponenten wird der tatsächliche Wert des Exponenten durch Subtraktion einer Verschiebe­distanz ("Bias") gewonnen. Beim einfach genauen Format beträgt diese Verschiebe­distanz 127.

Mit 8 Bit sind die Binärwerte {0, ..., 255} darstellbar; die Werte 00000000 = 0 und 11111111 = 255 sind reserviert; aus den ver­bleibenden Werten {1, ..., 254} ergibt sich nach Subtraktion der Verschiebe­distanz der tatsächliche Wertebereich des Exponenten {-126, ..., 127}. Somit sind auch negative Exponenten möglich. Das folgende Diagramm zeigt den Ablauf der Umrechnung:

 

Bitfolge auswerten
langer Pfeil nach rechts
  Binärwert  127 subtrahieren
langer Pfeil nach rechts
  tat­sächlicher 
Exponent
01111101  125  -2

 

Der Vorteil der Ver­schiebungs-Darstellung besteht darin, dass ein Größer/Kleiner-Vergleich der Beträge zweier Gleit­komma­zahlen hierdurch sehr einfach möglich ist. Es müssen nur die Bitfolgen der beiden Zahlen lexiko­graphisch miteinander verglichen werden. Diejenige Zahl, die am weitesten vorn eine 1 hat, während die andere Zahl an derselben Position eine 0 hat, ist die betrags­größere (und damit die größere, wenn die beiden Zahlen positives Vorzeichen haben bzw. die kleinere, wenn sie negatives Vorzeichen haben). Es spielt also keine Rolle, ob die erste Abweichung zwischen den Bitfolgen im Bereich des Exponenten vorliegt (dann ist die Zahl mit dem größeren Exponenten die betrags­größere) oder im Bereich der Mantisse (dann sind die Exponenten gleich und die Zahl mit der größeren Mantisse ist die betrags­größere).

Voraus­setzung ist allerdings, dass die Zahlen normalisiert sind, oder falls sie nicht normalisiert sind, den gleichen Exponenten haben – dies ist beim IEEE-Format der Fall.

Ohne diese dargestellte einfache Möglichkeit könnte ein Vergleich zweier Gleit­komma­zahlen dadurch realisiert werden, dass die Zahlen subtrahiert und das Vorzeichen des Ergebnisses ausgewertet wird. Eine Gleitkomma-Subtraktion ist aber eine relativ aufwendige Operation, insbesondere zur Zeit der Definition des IEEE-Formats, im Jahre 1985. Man wollte damals vermeiden, dass zum Sortieren von Zahlen Gleitkomma-Operationen erforderlich sind.

Der Nachteil der Ver­schiebungs-Darstellung des Exponenten besteht darin, dass nach einer Exponenten­addition zusätzlich noch die Verschiebe­distanz subtrahiert werden muss bzw. nach einer Exponenten­subtraktion addiert werden muss.

Spezialwerte

Denormalisierte Zahlen und Null

Ein Sonderfall tritt auf, wenn der Exponent nur aus Nullen besteht. Dann wird bei der Mantisse keine implizite 1 vor dem Komma angenommen, sondern eine implizite 0. Zum Ausgleich beträgt der tatsächliche Wert des Exponenten in diesem Fall nicht -127, sondern -126. Auf diese Weise lassen sich noch betrags­kleinere Zahlen darstellen, bis hin zur 0. Die Zahl 0 wird also dargestelt durch lauter Nullen im Exponenten und lauter Nullen in der Mantisse; das Vorzeichen kann + oder - sein. Zahlen mit lauter Nullen im Exponenten werden als denormalisierte Zahlen bezeichnet.

Unendlich

Ein weiterer Sonderfall tritt auf, wenn der Exponent nur aus Einsen besteht. Besteht die Mantisse nur aus Nullen, so ist der Wert der dar­gestellten Zahl +unendlich oder -unendlich;, je nach Vorzeichen­bit. Das Ergebnis +unendlich ergibt sich, wenn eine positive Zahl durch 0 dividiert wird, oder bei einem Exponenten­überlauf.

NaN

Besteht der Exponent nur aus Einsen und enthält die Mantisse Einsen, so ist der Wert der dar­gestellten Zahl NaN (not a number). Dieser Wert ergibt sich u.a. als Ergebnis einer undefinierten Rechen­operation, wie z.B. 0/0 oder unendlich – unendlich.

Übersicht

Die folgende Tabelle gibt eine Übersicht über die Darstellung ver­schiedener 32-Bit-Gleit­komma­zahlen.

 v emWert
0000 0000000 0000 0000 0000 0000 0000 +0
0000 0000000 0000 0000 0000 0000 0000 -0
0111 1111000 0000 0000 0000 0000 0000 1.0·20 = 1
0111 1110100 0000 0000 0000 0000 0000 1.1·2-1 = 0,75
0111 1101100 1100 1100 1100 1100 1101 1.10011·2-2 = 0,4
1000 0000000 0000 0000 0000 0000 0000 -1.0·21 = -2
1000 0011010 0100 0000 0000 0000 0000 1.01001·24 = 1,28125·16 = 20,5
0000 0000110 0000 0000 0000 0000 0000 0.11·2-126 (denormalisierte Zahl)
1111 1111000 0000 0000 0000 0000 0000 +unendlich
1111 1111000 0000 0000 0000 0000 0000 -unendlich
1111 1111010 0110 0000 0000 0000 0100 NaN

 

Eine Umrechnungs­applikation für 32-Bit-Gleit­komma­zahlen findet sich im Web unter http://www.h-schmidt.net/FloatApplet/IEEE754.html.

Doppelt genaues Format

Das einfach genaue Format erlaubt lediglich eine Genauigkeit der Darstellung von ca. 7 Dezimal­stellen. Dies ist relativ wenig; bei einer Zahl wie 12.345,678 ist die dritte Stelle nach dem Komma schon ungenau. Insbesondere bei numerischen Berechnungen mit längeren Folgen von Rechen­operationen sinkt die Genauigkeit so stark, dass das einfach genaue Format nicht ausreicht.

Daher gibt es das doppelt genaue Format. Beim doppelt genauen Format werden die Zahlen mit 64 Bit dargestellt. Die Länge des Exponenten ist 11 Bit, die Länge der Mantisse ist 52 Bit. Der Bias des Exponenten beträgt 1023. Die Genauigkeit der Darstellung entspricht ca. 16 Dezimal­stellen.

Heutzutage sind Speicher­platz und Rechen­leistung so reichlich vorhanden, dass nur noch das doppelt genaue Format verwendet werden sollte (Typ double in Programmier­sprachen).


1)  Andere Bezeich­nungen sind: Exzess-k-Darstellung (Verschiebung um den Wert k) oder Offset-Darstellung

 

Weiter mit:   up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   ©   Created: 14.02.2004   Updated: 11.06.2016
Valid HTML 4.01 Transitional


Campus Flensburg

Informatik in Flensburg studieren...

 

Neu gestaltetes Studienangebot:

Bachelor-Studiengang
Angewandte Informatik

mit Schwerpunkten auf den Themen Software, Web, Mobile, Security und Usability.

Ihr Abschluss
nach 7 Semestern:
Bachelor of Science

 

Ebenfalls ganz neu:

Master-Studiengang
Angewandte Informatik

Ein projektorientiertes Studium auf höchstem Niveau mit den Schwerpunkten Internet-Sicherheit, Mobile Computing und Human-Computer Interaction.

Ihr Abschluss
nach 3 Semestern:
Master of Science

 

Weitere Informatik-Studienangebote an der Hochschule Flensburg:

Medieninformatik

Wirtschaftsinformatik