hallo,
in der mitte dieser seite: https://www.c64-wiki.de/index.php/Flie%C3%9Fkommaarithmetik
ist ein umrechnungsbeispiel angegeben welches ich an einer stelle (*) nicht nachvollziehen kann:
und zwar:
- exp m4 m3 m2 m1
- 98 35 44 7A 00 - Hexadezimaldarstellung
- 152 53 68 122 0 - Dezimaldarstellung
- 10011000 00110101 01000100 01111010 00000000 - Binärdarstellung
- ^sign bit
- In diesem Fall:
- Exponent = 152 - 128 = 24 ; dez
- Mantisse = 0.10110101010001000111101000000000 ; bin
- Mantisse = +1 * (53 >> 8 + 68 >> 16 + 122 >> 24 + 0 >> 32) ; dez (*) <<<<<<<
- = 1 * 2^-1 + 0 * 2^-2 + 1 * 2^-3 + 1 * 2^-4 + 0 * 2^-5 + ...
- = 0.70807611942291259765
- Die Zahl ist also
- 0.70807611942291259765 * 2^24 = 11879546.0
(wieso stellt sich die syntax-hervorhebung von 'nichts' auf 'brainfuck'? ich versuche jetzt mal 'c')
die mit (*) markierte zeile kombiniert mit der erklärung:
lese ich jetzt so:
+1 * (53 >> 8 + 68 >> 16 + 122 >> 24 + 0 >> 32) +1 * (53 *2↑(-8y) + 68 *2↑(-16) + 122 *2↑(-24) + 0 *2↑(-32) )
tippe ich alles mit meinem winxp rechner zusammen gibt das:
+1 * (0,20703125 + 0,00103759765625 + 0,00000727176666259765625 + 0 )
+1 * (0,20807611942291259765625)
aber NICHT auf:
0.70807611942291259765 (wie es in zeile 15 als ergebnis/mantisse steht)
gebe ich das falsch in meinen rechner ein, oder wie kommt es zu dem fehler?
danke für die hilfe!