AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe! IEEE Long Real 64 Bit Berechnung.

Offene Frage von "Ivexx"
Ein Thema von Ivexx · begonnen am 16. Mai 2007 · letzter Beitrag vom 20. Mai 2007
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz