Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Hilfe! IEEE Long Real 64 Bit Berechnung.

  Alt 16. Mai 2007, 09:20
Ich nehme mal die Zahl als Beispiel um sie in binär umzuwandeln. Fehler sind bestimmt drin und hab auch keine Ahnung, ob man das einfacher machen kann:

123,23=

1 * 2^6 (Rest: 59,23)
+1 * 2^5 (27,23)
+1 * 2^4 (11,23)
+1 * 2^3 (3,23)
+0 * 2^2 (3,23)
+1 * 2^1 (1,23)
+1 * 2^0 (0,23)
,
+0 * 2^-1 (0,23)
+0 * 2^-2 (0,23)
+1 * 2^-3 (0,105)
+1 * 2^-4 (0,0425)
+1 * 2^-5 (0,01125)
+0 * 2^-6 (0,01125)
+1 * 2^-7 (0,003438)
+0 * 2^-8
+1 * 2^-9
Wenn ich kein Fehler gemacht habe geht das noch ne Weile so weiter. Bei Double ist die Mantisse 52 bit breit, ich hab jetzt die ersten 16 ausgerechnet.

Jetzt kannst du das aufschreiben als:
1111011,001110101....

Jetzt wird das Komma nach vorne verschoben (ich bin mir nicht genau sicher, ob vor oder hinter die erste 1; ich mach mal hinter)
1,111011001110101... (* 2^6) <-- wichtig: Exponent (ist Anzahl der Stellen)

Der Exponent ist bei Double 11 bit breit. Da der Exponent immer positiv gespeichert wird, müssen wir immer 2^(11-1)-1 = 1023 dazuaddieren --> 6+1023 = 1029

1029 in binär --> 10000000101


Damit hätten wir unser double zusammen:

Vorzeichenbit: (positiv) 0
Exponent : 10000000101
Mantisse ohne Komma)1111011001110101...

Zweites großes Fragezeichen meinerseits: Bei der Mantisse wird laut IEEE eigentlich die führende 1 weggelassen (da sie immer da ist), aber ich glaub der Rechner hält sich da nicht dran
also Manitsse: 111011001110101...(wie gesagt: 52 Stellen )


Ich mach mal mit Mantisse ohne führende 1 weiter.
Unser Doublewert (VZ - Exp - Mant):
010000000101111011001110101....
und schöner gruppiert:
0100 0000 0101 1110 1100 1110 101....
demnach ist die Hexdarstellung davon; die Vierergruppen (wie heißen die gleich nochmal ) einzeln umsetzen:
405ECE....
(weiß nicht ob du mit Sedezimal, was anderes meinst)

Edit: 1 Fehler im Text berichtigt

Edit2: Wow, lag ich gut . Hab grad mal geschaut, was der Rechner nun wirklich macht. Also er lässt wirklich die führende 1 weg .
Ergebnis: 40 5E CE B8 51 EB 85 1F

Edit3: kleiner Schönheitsfehler
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat