Tabelle 1: Bestandteile einer Gleitkommazahl nach IEEE754
=
Vorzeichen
Das Vorzeichen. (0 für Plus und 1 für Minus)
Exponent
Die Exponent der Gleitkommazahl.
, bzw. +
Entweder das Komma, oder ein Operator.
Mantisse
Die Nachkommastellen der Gleitkommazahl
Zahlensystem
H für Hexadezimal,
B für Binär und
D für Dezimal
Vorwort:
Gleitkomma Zahlen sind die Zahlen mit dem der
Computer mathematische Operationen durchführt.
Die Standarddarstellung der Gleitkommazahlen ist in der
IEE754
geregelt.
Dies war eine Aufgabe aus meinem Eignungstest.
Hier noch eine Erklärung (Legende),
was die Farben der Tabellen für die Gleitkommazahl zu bedeuten haben:
Umrechnung von 16,4 in die 32Bit Gleitkomma-Darstellung
Vorzeichen
Tabelle 2: Vorzeichen einer Gleitkommazahl
Positiv (+) = 0B
Negativ (-) = 1B
Da die 16,4 positiv ist,
wird das durch die 0 als Vorzeichen deutlich gemacht.
Mantisse
Links von der Tabelle wird beschrieben,
wie man zu dem Ergebnis in der Tabelle gelangt.
Tabelle 2: Die dezimale Zahl.
=
+
16
,
4
D
Die dezimale Zahl wurde in Vorzeichen, Ganzzahl vor dem Komma und
gebrochener Zahl nach dem Komma eingeteilt.
Tabelle 3: Durch 2 teilbare Teile für 16,4 Dezimal.
Die Zahl vor dem Komma,
wird begonnen mit der größtmöglichen darin enthaltenen
Potenz von Zwei (0, 1, 2, 4, 8, 16, …) in Einzelteile zerlegt.
Ebenso die nach dem Komma mit 1/2, 1/4, …
Die Potenz von Zwei wird als solche auch geschrieben.
8 = 23 ebenso wie
1/8 = 2-3 ist.
Tabelle 5: Binäre Zahl für 16,4 Dezimal.
=
+
1000
,
0110 0110 0110 0110 0110
B
Von den Potenz wird jetzt nur noch der davor stehende Faktor 0 oder
1 notiert und damit als binäre Zahl geschrieben.
Exponent
Tabelle 6: Exponent in der Variante 0
=
+
0
,
1000 0110 0110 0110 0110 0110
B
*2+4D
Ab hier geht die Darstellung zwei Wege.
Je nach dem ob die so genannte Normalisierung der Mantisse
zur
Variante 0, oder zur
Variante 1, führen soll.
Um die jeweilige Variante zur realisieren,
muss das Komma so lange nach rechts (-) oder
nach links (+) verschoben werden,
bis 0,... bzw. 1,... vorne steht.
Das Verschieben um 1 Stelle nach Rechts,
vermindert (-), bzw. nach Links,
erhöht (+), den Exponenten um Eins.
Wir haben das Komma in der Mantisse um 4 Stellen nach Links (+)
von
1000,0110
… auf
,1000 0110
verschoben und damit 2+4D erhalten.
Tabelle 7: Exponent in der Variante 1
=
+
1
,
0000 1100 1100 1100 1100 110
B
*2+3D
Oder
Wir haben das Komma in der Mantisse um 3 Stellen nach Links
(+) von
1000,0110
... auf
1,000 0110
verschoben und damit 2+3D erhalten.
Die Mantisse ist in beiden Fällen der Normalisierung fast gleich.
Die Variante mit dem Ziel 1,
hat eine Stelle mehr für die Genauigkeit zur Verfügung.
Der Exponent unterscheidet sich ebenfalls,
durch um Eins höhere bzw. niedere Potenz,
welche sich im Faktor =2 niederschlägt.
Hier greifen zwei Umrechnungen zusätzlich ein,
um die Möglichkeiten der Gleitkomma-Darstellung zu verbessern:
Exponenten kleiner Null werden dadurch ermöglicht,
in dem zu dem ermittelten Wert, in diesem Fall +4D,
127D dazugezählt werden.
D.h. der mögliche kleinste Exponent kann
2-127D sein!
In unserem Beispiel wird dieser zu:
2127D+4D = 2131D = 21000 0011B
Die Ungenauigkeit hängt von der Anzahl der Stellen in der Mantisse
ab, d.h. bei dieser Art beträgt sie 2-23D.
Man kann diese verdoppeln,
wenn man vereinbart die generell auftretende führende Stelle
0,1B bzw. 1,0B der Mantisse nicht mit zu notieren und
damit allen Stellen der Mantisse die Möglichkeit zu geben,
um eine Stelle nach links zu rutschen und damit die Ungenauigkeit auf
2-24D zu vermindern.
Damit wird aus:
= 0,1
000 0110 0110 0110 0110 011B
Variante 0,
=
0000 1100 1100 1100 1100 110B
bzw.
= 1,
0000 1100 1100 1100 1100 11B
Variante 1,
=
0000 1100 1100 1100 1100 110B
Nachteil: Die Zahl NULL gibt es nicht mehr direkt.
Sie wird durch den kleinsten Exponenten 1*2-127D
angenähert!
Ergebnis
Als Ergebnis erhält man die binäre Darstellung
der Mantisse, des Vorzeichens und des Exponenten
in der Variante 1, und Variante 0,
von der dezimalen Zahl 16,4.
31
S
0
0
30 23
E E E E E E E E
1 0 0 0 0 1 0 0
bzw.
1 0 0 0 0 0 1 1
Exponent
22 00
M M M M M M M M M M M M M M M M M M M M M M M
0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
Mantisse
Variante 0,
Variante 1,
Vorzeichen
Eine Gleitkommazahl in eine Dezimalzahl umrechnen
Gegeben ist die 32Bit-Gleitkommazahl in ihrer binären Darstellung mit
1100 0011 0111 0110 0100 0000 0000 0000B,
so wie sie im Speicher bzw. in einer Datei vorliegt.
31
S
1
30 23
E E E E E E E E
1 0 0 0 0 1 1 0
Exponent
22 00
M M M M M M M M M M M M M M M M M M M M M M M
1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mantisse
Vorzeichen
Zuerst sind ein paar Umrechnungen nötig.
Vorzeichen:
0B = Positiv (+)
1B = Negativ (-)
Als erstes muss man die 0,1B (1/2D) vor die Mantisse setzen.