Dezimalzahl in IEEE 754 umrechnen

Hallo zusammen.

Ich würde gerne eine Dezimalzahl in eine Single Precision Gleitkommazahl nach IEEE 754 umwandeln. Leider kenne ich das Verfahren dazu nicht. Ich finde im Web nur einen JavaRechner, bei dem sich mein Browser immer aufhängt (aber das ist eine andere Geschichte).
Kennt euch jemand einen Link, wo das ganze erklärt wird?

Ich finde leider bestenfalls nur immer Darstellungen

(6.125)_(10) kann dargestellt werden als (0.110001)_2 *2^3 = (110.001)_2 = 2^2+2^1+2^(-3) = 6.125

Das allerdings auch nur unter dem Stichwort Fließkommazahlen.

Wie rechne ich Dezimalzahlen in IEEE 754 Zahlen um?

Viele Grüße
Disap

Hallo,

verstehe ich nicht so recht - der Artikel

http://de.wikipedia.org/wiki/Gleitkommazahl

ist doch sehr ausführlich? Was kann man noch wollen?

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Konkretes Beispiel - Zahlenumrechnung
Moin.

verstehe ich nicht so recht - der Artikel

http://de.wikipedia.org/wiki/Gleitkommazahl

ist doch sehr ausführlich? Was kann man noch wollen?

Also ich habe hier ein konkretes Beispiel und möchte gerne die Zahl
44.2123 umrechnen.

Ich gehe analog zu dem Artikel von Wikipedia vor.

Das Vorzeichen ist +, also schreibe ich eine 0

Dann zur Berechnung des Exponenten: log_2 (44.2123) = 5.466375882 Gerundet auf 5.

-> 5+127 = 132

132 ist in Binär 10 00 01 00

Nun zur Mantisse (2^3 = 8)

[(44.2123/8)-1]*2^(23) = 3.797134868*10^7 = 37971348.68

Hm. Nun runde ich auf (?) zu 37971349

Das ist umgerechnet in Binär ist

10 01 00 00 11 01 10 01 01 10 01 01 01

Das sind jetzt leider 26 Stellen. In Wikipedia waren es 23.

Na ja, alles hintereinander gekoppelt ergibt das Ergebnis:

01 00 00 10 01 00 10 00 01 10 11 00 10 11 00 10 101

Laut dem Umrechner: http://www.h-schmidt.net/FloatApplet/IEEE754de.html
kommt aber heraus:

01 00 00 01 00 01 01 00 01 10 11 00 00 10 11 00 101

Der Vergleich:
01 00 00 10 01 00 10 00 01 10 11 00 10 11 00 10 101
01 00 00 01 00 01 01 00 01 10 11 00 00 10 11 00 101

Schon beim Exponenten habe ich einige Abweichungen.

Woran liegt es?
Ich darf nicht von 127 ausgehen, oder? Zu welcher Zahl muss ich dann beim Exponenten die fünf addieren? Und wie viele Bits hat dann meine Mantisse?

Liebe Grüße
Disap

Hallo,

du hast dich mehrfach verrechnet (Matisse ist 5, 2^5 = 32, ausserdem 1 Stelle zuviel beim Ergebnis) und wahrscheinlich auch das Ergebnis des Applets falsch abgeschrieben, denn das dürfte ja nur 32 Bit haben (sonst ist das Applet auch falsch).

Richtig ist 44.2123 =
01 00 00 10 00 11 00 00 11 01 10 01 01 10 01 01 
V E M

nach meiner eigenen Rechnung ebenso wie nach Wikipedia.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like

Halo.

Richtig ist 44.2123 =
01 00 00 10 00 11 00 00 11 01 10 01 01 10 01 01
V E M

Das habe ich auch. Vielen Dank für die Hinweise.
Mein Hauptfehler war beim Exponenten. Der war ja 5 und ich habe dann aber mit 3 weitergerechnet.

Nun stimmts bei mir auch,
danke!

Liebe Grüße
Disap