Digitaltechnik und Halbleiterschaltungsentwurf

IEEE-754 WebApp

Bei der Darstellung besonders großer Werte und Zahlen nahe 0 stoßen Festkommaformate schnell an ihre Grenzen. Die Gleitkommaformate des 1989 eingeführten IEEE Standard 754 erweitern den darstellbaren Zahlenbereich maßgeblich. Das -Format besteht aus 32 Bits. Dabei gibt das erste Bit \(S\) das Vorzeichen an. Die nächsten 8 Bits beschreiben den Exponenten \(E\). Die restlichen 21 Stellen geben den Wert der Mantisse \(M_\text{f}\) an. Eine Zahl \(x\) berechnet sich aus dem gegebenen Bitmuster zu $$ x = (-1)^S \cdot 2^{E-OS} \cdot (1 + M_\text{f}) $$ Dabei wird der Offset \(OS = 127\) verwendet, um auch negative Exponenten zu ermöglichen.

Für die Umrechnung einer Zahl \(x\) = in das Single Precision-Format werden zuerst die Binärrepräsentationen des Vor- und Nachkommateils der Zahl separat bestimmt. (vgl. Berechnung Vorkommateil und Nachkommateil)

Die Umwandlung ergibt
Vorkommateil:
12310 = 11110112
Nachkommateil:
0.45610 = 0.011101001011111⋯2

Die sich ergebende Zahl \(x_2= \)(1111011.0111⋯)2 muss nun in die normalisierte Form gebracht werden. D.h. \(x_2\) muss mit der Zweierpotenz 2\(-e\) = 26 multipliziert werden, wodurch das Komma um 6 nach links verschoben wird. In der normalisierten Form steht somit vor dem Komma immer eine 1. Als Mantisse \(M_f\) werden die ersten 21 Ziffern des Nachkommateils abgespeichert. Der Vorkommateil ist mit 1. für jede Zahl in normalisierter Form gleich und muss nicht abgespeichert werden. Das Vorzeichen des Exponenten wird über den Offset \(OS = 127\) berücksichtigt. Abgespeichert wird der biased exponent \(E = OS + e\) (hier 13310 = 100001012).

Mantisse:
(123.456)10 = (1111011.1110110111)2
(1.1110110111101)2 · 26
biased exponent:
127 + (6) = 13310 = 100001012

Binärrepräsentation:
0 | 10000101 | 111011011101001011111001 

Variante 2

Für die Umrechnung einer Zahl \(x\) = in das Single Precision-Format muss zuerst der Exponent \(e\) der normalisierten Form bestimmt werden. Die Zahl \(x\) kann damit als \(x=M\cdot 2^e\) dargestellt werden. Mit \(e = \lfloor \log_2 x \rfloor\) ist M eine Zahl zwischen 1 und 2.

log2(123.456) = 6.9478abgerundet: \(e = \) 6
\(x = \) 123.456 = 1.929 · 26

Hier ist wichtig zu beachten, dass negative Exponenten betragsmäßig aufgerundet werden. Der Nachkommateil \(M_f\) der Mantisse \(M\) kann nun in das Dualsystem umgewandelt werden. (Siehe hier) Zum Exponenten wird noch der Offset \(OS=127\) addiert. Dieser sogenannte biased exponent kann ebenfalls in das Binärsystem überführt werden.

Mantisse:
\(1 + M_f\) = (1.929)10
=
1 + (0.111011⋯)2

biased exponent:
\(E = OS + e\) = 127 + 6 = 13310
=
100001012


Binärrepräsentation:
0 | 10000101 | 111011011101001011111001