Binär Nachkommazahl in Dezimal umwandeln

Freebord
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 4. Apr 2008 16:50

Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Freebord »

Zum beispiel in IEEE-754 die mantisse von dual nach dezimal umwandeln.

1000 1001 1010 1011 1100 000 ist die zahl aus Ü4.3.b)

wenn ich 1/2 + 1/32 + 1/256 ... mach dann bin ich ja am ende der klausur grad mal mit einer zahl fertig.

Es gab da mal so ein ganz dolles verfahren mit dem es relativ schnell ging, kennts jemand und kann mans ihrgendwo nachlesen?

Christoph-D
Computerversteher
Computerversteher
Beiträge: 325
Registriert: 11. Dez 2005 13:14
Wohnort: Darmstadt

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Christoph-D »

Freebord hat geschrieben:Zum beispiel in IEEE-754 die mantisse von dual nach dezimal umwandeln.

1000 1001 1010 1011 1100 000 ist die zahl aus Ü4.3.b)

wenn ich 1/2 + 1/32 + 1/256 ... mach dann bin ich ja am ende der klausur grad mal mit einer zahl fertig.

Es gab da mal so ein ganz dolles verfahren mit dem es relativ schnell ging, kennts jemand und kann mans ihrgendwo nachlesen?
Ein etwas schnelleres Verfahren ist vielleicht das folgende:

Gegeben sei der Binärbruch 0,100010011010101111 (dein Beispiel ohne überflüssige 0en am Ende). Um jetzt die erste Dezimalziffer zu bekommen, multiplizierst du diese Zahl mit 10. Die Zahl 10 ist in binär 1010, die Multiplikation damit ist also sehr einfach, das ist nur eine einzige Addition. Du addierst die um 3 nach links geshiftete Zahl zu der um 1 nach links geshifteten:

Code: Alles auswählen

  100,010011010101111
+   1,00010011010101111
-----------------------
  101,01100000101101011
Vor dem Komma steht jetzt die erste Dezimalstelle, die 5.

Jetzt machst du mit dem Rest, also mit 0,01100000101101011 das gleiche:

Code: Alles auswählen

  011,00000101101011
+   0,1100000101101011
----------------------
   11,1100011100010111
Also ist die nächste Dezimalstelle 3, also geht die gesuchte Dezimalzahl schonmal mit 0,53 los.


Optimal ist das Verfahren aber sicher nicht, denn man muss immer noch für jede gewonnene Dezimal-Stelle einiges aufschreiben. Aber die Rechenoperationen sind bedeutend einfacher als 1/2 + 1/32 + 1/256 + ... direkt mit Brüchen auszurechnen und man bekommt in jedem Schritt genau eine Dezimalstelle.


Edit: 101_2 ist natürlich 5 und nicht 7.
Zuletzt geändert von Christoph-D am 11. Sep 2008 15:29, insgesamt 2-mal geändert.
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)

Freebord
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 4. Apr 2008 16:50

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Freebord »

ok das ist auf jeden fall schon mal einfacher, als brüche, aber das dauert ja auch ewig. Ist es das verfahren aus der vorlesung? Und gibt es wirklich kein einfacheres?

Freebord
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 4. Apr 2008 16:50

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Freebord »

ehm die dezimal zahl ist 0,53777694...

du hast dich verzählt richtig gerechnet, aber falsch von binär auf dezimal umgewandelt ^_^

wann hörte ich denn auf mit dem verfahren??? Die zahl ist doch unendlich in dezimal. In der musterlösung haben sie auf 0,537777 gerundet???

Christoph-D
Computerversteher
Computerversteher
Beiträge: 325
Registriert: 11. Dez 2005 13:14
Wohnort: Darmstadt

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Christoph-D »

Freebord hat geschrieben:ehm die dezimal zahl ist 0,53777694...

du hast dich verzählt richtig gerechnet, aber falsch von binär auf dezimal umgewandelt ^_^

wann hörte ich denn auf mit dem verfahren??? Die zahl ist doch unendlich in dezimal. In der musterlösung haben sie auf 0,537777 gerundet???
Wenn du einen abbrechenden Binärbruch in einen Dezimalbruch umwandelst, wird der Dezimalbruch ebenfalls abbrechen. Der Grund dahinter ist, dass 10 durch 2 teilbar ist. Du machst also so lange weiter, bis der Rest nur noch 0 ist oder du die gewünschte Genauigkeit erreicht hast. Der Rest wird immer irgendwann 0 werden, weil der Binärbruch abbricht und du jedesmal mindestens ein Feld nach links shiftest.

Wenn man das Verfahren so lange anwendet, bis der Rest 0 ist, bekommt man die volle Genauigkeit: 0,5377769470214844.

Ich hatte oben 0,73 raus, weil ich mich vertan hatte: 101 ist natürlich 5 und nicht 7, die ersten beiden Ziffern sind also 0,53.
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)

tmx-master
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 253
Registriert: 25. Okt 2006 17:44

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von tmx-master »

Freebord hat geschrieben:Zum beispiel in IEEE-754 die mantisse von dual nach dezimal umwandeln.

1000 1001 1010 1011 1100 000 ist die zahl aus Ü4.3.b)
wenn ich 1/2 + 1/32 + 1/256 ... mach dann bin ich ja am ende der klausur grad mal mit einer zahl fertig.
Also ich behaupte mal, wer so was in der Klausur fordert, der ... na ja.

Die Beispiele für das manuelle Rechnen (auf Papier) (nehmen wir mal das umfangreiche Beispiel aus der Übung weg, denn da hat man ja auch mehr Zeit) beschränken sich auf Zahlen wie -0,4375 oder 1,875. Das sind solche Zahlen, die man durchaus noch mit den ersten 3-4 Summanden der Nachkommastellen zusammen bekommt:
0,5
+0,25
+0,125
+0,0625
Alles was darüber hinausgeht ist ja schon Schikane und bringt auch keinen geistigen Mehrwert mehr für eine (Um-) Rechnung.
Gruß TM

Steven
Kernelcompilierer
Kernelcompilierer
Beiträge: 425
Registriert: 2. Sep 2008 10:00
Wohnort: Frankfurt am Main

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Steven »

tmx-master hat geschrieben:Alles was darüber hinausgeht ist ja schon Schikane und bringt auch keinen geistigen Mehrwert mehr für eine (Um-) Rechnung.
Da keine Taschenrechner zugelassen sind, gehe ich auch nicht davon aus, dass so etwas drankommt.

Mspringer
Nerd
Nerd
Beiträge: 555
Registriert: 19. Okt 2006 14:41
Wohnort: Darmstadt / Alzenau
Kontaktdaten:

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von Mspringer »

In der Übung ging es darum zu verstehen wie es geht. Ich wiederhole mich auch gerne von damals wieder: Es geht nicht drum, wer der beste Taschenrechnerersatz ist.

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Binär Nachkommazahl in Dezimal umwandeln

Beitrag von oren78 »

Mspringer hat geschrieben:...Es geht nicht drum, wer der beste Taschenrechnerersatz ist.
nicht...? :lol:
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Antworten

Zurück zu „Archiv“