Op sommige systemen, bijvoorbeeld embedded systemen is de geheugenruimte te beperkt of is een grotere nauwkeurigheid niet vereist. In dat geval gebruikt men soms het 8-bit floating point systeem. Om te het uiteindelijke floating point getal te komen, moet je eerst de mantisse normaliseren tot een fractie en de exponent herleiden met een exces 7.
1 | 1111 | 111 |
Sign | Exponent + 7 | Fractie |
-0,068675 x 102 = -0,68675 x 101 = -6,687510 = -66,875 x 10-1 = -668,75 x 10-2
Deel voor komma | Rest | Deel na komma | > 0 |
6 110 | 0,6875 | ||
6 / 2 = 3 | 0 | 0,6875 x 2 = 1,375 | 1 |
3 / 2 = 1,5 | 1 | 0,375 x 2 = 0,75 | 0 |
1 / 2 = 0,5 | 1 | 0,75 x 2 = 1,5 | 1 |
0 | 0,5 x 2 = 1 | 1 | |
0 |
610 = 1102 , 0,687510 = 0,11012
* Je leest de cijfers uit de tabel van onder naar boven (onderste cijfer is MSB, bovenste cijfer is LSB)
Let op!
Bij een binaire komma notatie moet je rekening houden met het volgende:
Deel voor de komma |
Deel na de komma | |
-110 |
, | 1101 |
eerste nullen mag je schrappen | eerste nullen mag je niet schrappen | |
laatste nullen mag je niet schrappen | laatste nullen mag je schrappen | |
-0 |
, | 001101 |
Nu we onze binaire notatie -110,1101 hebben kunnen we beginnen met het converteren naar een floating point getal. Hiervoor moet eerst je mantisse gaan normaliseren. Om tot je fractie (genormaliseerde mantisse) te komen, moet je de komma zover naar links opschuiven totdat er nog maar één enkele '1' voor de komma staat
-1,1011012 x 2102 = -11,011012 x 2101 = -110,11012 x 102-0 = -1101,1012 x 210-1
1 | 1001 | 101 |
Sign | Exponent + 7 | Fractie |
Decimaal | -6,6875 x 100 |
Binair | -110,1101 x 20 |
Binair genormaliseerd | -1,101101 x 22 |
Sign | 1 |
Exponent | 10 |
Exponent in exces 7 | 1001 |
Fractie | 101 |
8-bit floating point | 1 1001 101 |
Je ziet hier duidelijk de afrondingsfout omdat we de laatste drie bits van de fractie hebben moeten laten vallen door gebrek aan adresruimte. Als men dit terugrekent krijgt men:
1,10012 x 22 = 110,012 = 6,2510