Gleitpunktzahlen
Gleitpunktzahlendarstellung wird auch floating point number representation genannt.
Darstellung von Gleitpunktzahlen im Dezimalsystem:
1684.77 >>> 1.68477 * 10^3
0.0754 >>> 7.54 *10^-2
Darstellung von Gleitpunktzahlen im Dualsystem:
1001.101 >>> 1.001101 * 2^3
0.00101 >>> 1.01 *2^-3
- die erste Stelle ist im Dualsystem immer eine 1
- die erste Stelle kann auch weggelassen werden
- Stellen rechts vom Komma werden fraction genannt
Standardformate:
Allgemeine Formel: -1 ^ Vorzeichen * (2 ^ Exponen) * Mantisse
32-stellige Darstellung (single precision):
00010010000010010001001110110110
>>> Vorzeichen = 0 ; Exponent mit Bias = -91 ; Mantisse = 1.070914
>>> Dezimal: 4.32538732123598919168490265392E-28
64-stellige Darstellung (double precision):
0001001000001001000100111011011000010010000010010001001110110110
>>> Vorzeichen = 0 ; Exponent = ;
Mantisse =
>>> Dezimal: 8.67178957585180905705719394642E-222
80-stellige Darstellung (extended precision):
Erklärung:v = Vorzeichen; e = Exponent; f = fraction ; m = mantisse
Umrechnung von Dezimalzahl zu Gleitpunktzahl
- Vorzeichen bestimmen (1 Negativ; 0 Positiv)
- Normalisieren, wenn nötig
- Exponent bestimmen und in Binärzahl umwandeln (Achtung bei negativen Zahlen: In Schritt 2: * 2 anstelle von / 2)
- Mantisse bestimmen und in Binärzahl umwandeln
Beispiel:
Umrechnungsformel von Gleitpunktzahl zu Dezimalzahl
- Vorzeichen bestimmen (1 Negativ; 0 Positiv)
- Exponenten bestimmen
- Mantisse bestimmen
- Dezimalzahl aus Normalisierter Binärzahl berechnen (Stellen nach dem Komma beachten)
Beispiel:
Addition von Gleitpunktzahlen
1. Schritt: Auf gleichen Exponent trimmen
2. Schritt: Mantisse wie gewohn addieren
3. Schritt: Umwandlung in Normalisiert Gleitpunktzahl
Beispiele für verschiedene Gleitpunktzahlen:
-0 ===> 1 0000 0000 000 0000 0000 0000 0000 0000
+0 ===> 0 0000 0000 000 0000 0000 0000 0000 0000
+Unendlich ===> 0 1111 1111 000 0000 0000 0000 0000 0000
-Unendlich ===> 1 1111 1111 000 0000 0000 0000 0000 0000
NaN ===> 1 1111 1111 111 1111 1111 1111 1111 1111
kleinste Zahl ===> 0 0000 0000 000 0000 0000 0000 0000 0001
zweit kleinste Zahl ===> 0 0000 0000 000 0000 0000 0000 0000 0010
maximal negative Zahl ===> 1 1111 1111 011 1111 1111 1111 1111 1111