i

Fachkonzept - Fest- und Gleitkommazahlen

Die Darstellungsmethode von Kommazahlen hängt vom Anwendungsfall und den damit einhergehenden Anforderungen ab.

Anforderungen

Fieberthermometer mit dezimaler Anzeige[1]

Fiebermessen, die Temperaturmessung einer Kühlanlage oder spezielle Steuerungsanlagen wie etwa die Automatisierung der Helligkeit einer Lichtanlage in Abhängigkeit vom Tageslicht erfordern Messungen in ganz bestimmten Intervallen mit festgelegter Genauigkeit, zum Beispiel:

  • Temperaturen zwischen ca. 35°C und 40°C bzw. zwischen -30°C und +20°C mit einer Genauigkeit von einer Dezimalen oder
  • Spannungen zwischen 0 und 12 V mit einer Genauigkeit von einer Hundertstel an einem Fotowiderstand.
  • ...

Rechner, die frei programmierbar sind, müssen unterschiedliche Anforderungen bewältigen können: Manchmal werden sehr große Zahlen benötigt, oft aber auch kleinste Bruchteile. Andere Anwendungen verrechnen sehr kleine Bruchteile mit großen Zahlen - wie man es beispielsweise aus der Chemie bei der Berechnung mit molaren Massen kennt.

Wie bei ganzen Zahlen benötigt man ein Bit für das Vorzeichen. Bei Festkommazahlen hat dann jedes weitere Bit einen festen Stellenwert, bei Gleitkommazahlen erhält man unter Einschränkung der Genauigkeit einen größeren Wertebereich.

Festkommazahlen

Eine Festkommazahl stellt eine Zahl mit einer bestimmten Anzahl von Ziffern dar, wobei die Position des Kommas fest vorgegeben ist und daher nicht mit gespeichert werden muss.

Die digitale Darstellung einer Festkommazahl kann in n Bits für den Vorkommateil und m Bits für die Nachkommastellen zerlegt werden. In der Bitfolge

bn-1 ... b0 b-1 ... b-m
hat dann jedes Bit bi die Wertigkeit 2i.

Beispiel

Als Beispiel wird hier eine (positive) Festkommazahl aus einem Byte betrachtet mit n=5 und m=3:

Dein Browser unterstützt kein SVG; deshalb funktioniert die Animation nicht! Daher hier nur das Bild:

Ersatzbild

Hinweise

Zu beachten ist, dass im Dezimalsystem abbrechende Brüche im Binärsystem periodisch sein können. Beispielsweise lässt sich der Dezimalbruch 0,6 nicht als Summe von Zweierpotenzen mit negativen Exponenten darstellen.

Werden negative Zahlen benötigt, so kann auch das Zweierkomplement verwendet werden.

Gleitkommazahlen

Eine Gleitkommazahl (auch: Fließkommazahl) ist eine (i. a. näherungsweise) Darstellung einer Zahl mithilfe der Exponentialschreibweise in der Form ~ m · be. Die Darstellung besteht dabei aus Vorzeichen ~, Mantisse m, Basis b und Exponent e. Die Mantisse bezeichnet dabei die Ziffernfolge der Zahl.

Bei fester Basis genügt es also Vorzeichen, Mantisse und Exponent anzugeben.

Wissenschaftliche Darstellungen im Dezimalsystem

Aus den Naturwissenschaften oder der Mathematik kennen wir Darstellungen von sehr großen oder sehr kleinen Zahlen wie 6,022 · 1023 (Avogadro-Konstante) oder 1,6 · 10-19 (Elementarladung).

Man spricht von einer normalisierten Darstellung, wenn genau eine Ziffer (ungleich 0) der Mantisse vor dem Komma steht.

Bei Taschenrechnern findet man häufig auch die Darstellung 6.022E23 oder 1.6E-19.

Darstellung im Binärsystem

Im Falle der Binärdarstellung ist bei normalisierten Gleitkommazahlen (außer 0) immer eine 1 vor dem Komma. Somit kann eine positive Gleitkommazahl in der Form

1,mn...m0 * 2ek...e0
dargestellt werden. Daher genügt es, neben dem Vorzeichen, die Nachkommastellen der Mantisse und die Darstellung des Exponenten zu speichern.

Bias

Damit der Exponent nicht als negative Zahl gespeichert werden muss, wird eine feste Zahl, der Bias B, hinzuaddiert. Der kleinstmögliche Exponent der Vorkommastelle (-B) wird dann als 0 gespeichert.

Denormalisierte Null

Sind alle Bits von Exponent und Mantisse 0, so wird die Gleitkommadarstellung als 0 interpretiert (unabhängig vom Vorzeichen).

Beispiel

Als (überschaubares) Beispiel wird hier eine Gleitkommazahl aus einem Byte betrachtet mit einem dreistelligen Exponenten, einem Bias von 3 und einer vierstelligen Mantisse:

Dein Browser unterstützt kein SVG; deshalb funktioniert die Animation nicht! Daher hier nur das Bild:

Ersatzbild

Darstellbar sind damit Zahlen im Intervall [-31;31] jedoch nur mit geringer Genauigkeit.

Unendlich und NaN

Es ist üblich bei Gleitkomma-Darstellungen Unendlich (z. B. als Überlauf des Wertebereichs) so darzustellen, dass alle Exponentenbits 1 und alle Mantissenbits 0 sind. Bei einer undefinierten Zahl (Not a Number, NaN), die z. B. bei Berechnungen wie 0:0 auftritt, sind alle Exponentenbits und mindestens ein Mantissenbit 1. Diese Vereinbarungen werden in der Interaktion oben, aufgrund der wenigen Exponentenbits, nicht berücksichtigt.

Gängige Codierungen

Normierte Darstellungen verwenden folgende Bitlängen für Mantisse und Exponent:

Datentyp VZ Exponent
(Bias)
Mantisse Summe
half 1 5
(15)
10 16 (=2 Byte)
single (float) 1 8
(127)
23 32 (=4 Byte)
double 1 11
(1023)
52 64 (=8 Byte)

Rechenschritte zur Bestimmung der Gleitkommadarstellung

Im folgenden Beispiel wird der o. g. single-Datentyp mit einem Bias von 127 verwendet.

Bestandteil Vorschrift Beispiel für x=125,4
Vorzeichen +: 0, -: 1 0(2)
Exponent exp=[log2(x)]
expB=exp+Bias
6+127=133
1000 0101(2)
Mantisse (x:2exp-1)*2m,
m ist Mantissenlänge
(125,4:26-1)*223=8 047 820 (,8)
111 1010 1100 1100 1100 1101(2)
0 1000 0101 111 1010 1100 1100 1100 1101

Konverter

Einen Konverter für Gleitkommazahlen findet man unter https://www.h-schmidt.net/FloatConverter/IEEE754de.html

Quellen

Suche

v
1.2.2.6.4
dev.inf-schule.de/information/darstellunginformation/binaerdarstellungzahlen/exkurs_andere_zahlen/konzept_kommazahlen
dev.inf-schule.de/1.2.2.6.4
dev.inf-schule.de/@/page/rtBxHMP3ZFTrRigv

Rückmeldung geben