Kijk, beschouw de volgende IEEE-754 single precision:
Code: Select all
1 00001001 01100000000000000000000
Het eerste deel vertelt je of het hier om negatieve getal gaat of niet (maar dat had je waarschijnlijk al snel door. (0 = positief, 1 is negatief)
Het tweede deel vertelt iets over de exponenten, om dat te achterhalen zet je ze om in basis 10 op de volgende manier:
0 . 2^7 + 0 . 2^6 + 0 . 2^5 + 0 . 2^4 + 1 . 2^3 + 0 . 2^2 + 0 . 2^1 + 1 . 2^0 = 8 + 1 = 9
Merk op: de machten zijn in dalende volgorde naar 0! (als je van links naar rechts leest.)
WACHT! Dit is niet je exponent! Want de exponenten zijn in excess 127 geschreven, dat betekent dat je van dit getal nog 127 (de bias) van moet aftrekken:
9 - 127 = -118
Dit is je uiteindelijke exponent van het grondtal 2 (ja, 2, niet 10).
Het derde deel is het "genormaliseerde" binaire fractie, dat wil zeggen dat de fractie tussen 0 en 1 ligt, in feite staat er dus:
1.0110000....
Merk op: de "1" die voor het binaire punt staat, wordt niet in IEEE-754 geschreven, let hier dus op dat je bij het uitschrijven van de antwoord nog een 1 moet bijzetten.
Het uiteindelijke antwoord is dus:
Code: Select all
1 00001001 01100000000000000000000 = -1.011 . 2^-118
Hopelijk al wat duidelijker nu?