Datentyp mfloat analog zu IEEE 754
Wir splitten ein Byte in 3 Bereiche. Als Vorbild nehmen wir den Datentyp float, jedoch soll
unsere Fließkommazahl nur mit einem Byte auskommen. Das erste Bit stellt das
Vorzeichen da. Die nachfolgenden 3 den
Exponenten und die 4 letzten
die Mantisse.
Exponent
Bias
= 3, es sind folgende Exponenten möglich:
- 000
-
001 ≙ -2
010 ≙ -1
011 ≙ 0
100 ≙ 1
101 ≙ 2
110 ≙ 3
- 111
Bei der
Interpretation des Zahlenformats stehen der kleinste (hier: 000) und der größte Exponent (hier: 111) für
besondere Zahlen.
Exponent = 000 und Mantisse = 0000
Je nach Vorzeichen werden +0 oder -0 dargestellt. +0 und -0 werden beim Vergleich als gleich angesehen.
Exponent = 000 und Mantisse > 0000
Denormalisierte Zahl
Exponent = 111 und Mantisse = 0000
Unendlich
Exponent = 111 und Mantisse > 0000
NaN
2*(1+15+6*16+1+15) = 256
Rechnen mit Gleitkommazahlen
Addition und Subtraktion
- Angleichung des Exponenten der betragsmäßig kleineren Zahl an den der betragsmäßig größeren Zahl
- Addition bzw. Subtraktion der Mantissen
- Normalisieren
Multiplikation und Division
- Mantissen multiplizieren bzw. dividieren
- Exponenten addieren bzw. subtrahieren
- Vorzeichen setzen
- Normalisieren
Python-Programm zu Minifloats
minifloat2.py - 3.2
Links