PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu IEEE Gleitpunkt- / Gleitkommazahlen


Kabelsalat
2006-06-23, 22:52:50
Hallo,

Ich frage mich, warum der IEEE-Standard für Gleitpunkt- / Gleitkommazahlen (afaik IEEE 754) eine Normierung der Mantisse auf 1 vorsieht (1 <= m < 2). Ich glaube kaum, dass dies ohne Grund so festgelegt wurde, eine einleuchtende Begründung erschließt sich mir jedoch nicht, da augenscheinlich eine Normierung auf 0 sinnvoller erscheint...

Danke für eure Hilfe

Kabelsalat

Neomi
2006-06-23, 23:02:40
Je nach Exponent wird mit einer impliziten 1 der Zahlenbereich von 0.25 bis 0.5, von 0.5 bis 1, von 1 bis 2, von 2 bis 4, ... dargestellt. Würdest du ohne implizite 1 von 0 bis 1 gehen, dann wäre der Bereich beim nächsthöheren Exponent entsprechend 0 bis 2, dann 0 bis 4, ... Von der auf die implizite 0 (bzw. fehlende implizite 1) folgende Stelle hängt ab, ob die weiteren Bits alle überflüssig sind, da die resultierenden Zahlen schon mit niedrigerem Exponent dargestellt werden können, oder ob sie die Hälfte der Darstellungsmöglichkeiten des nächsthöheren Exponenten überflüssig machen. Durch die Überschneidungen verlierst du die Hälfte der Präzision. Die implizite 1 dagegen holt das Maximum von dem raus, was mit den gegebenen Bits erreichbar ist.

Kabelsalat
2006-06-24, 12:10:16
Danke!

mekakic
2015-01-26, 16:27:13
Ich hänge mich mal an diesen Zombie... :)

Wenn ich Gleitkommadarstellungen nach IEEE754 verschiebe... verliere ich dann Präzision? Ich will nicht eine sehr große mit sehr vielen Nachkommastellen darstellen, sondern nur ich Skalierte Zahl. Macht es vom Prinzip einen Unterschied ob ich einen Wert x-fach skaliere und 0.0012345 oder 0.12345 oder 123.45 oder 12345000.00 darstellen möchte?

Wenn ich x-fach eine Multiplikation durchführe, kann ich mir das vorstellen aber bei der einmaligen Konvertierung sollte das doch egal sein, oder?

Pinoccio
2015-01-26, 20:38:00
Wenn ich Gleitkommadarstellungen nach IEEE754 verschiebe... verliere ich dann Präzision? Ich will nicht eine sehr große mit sehr vielen Nachkommastellen darstellen, sondern nur ich Skalierte Zahl. Macht es vom Prinzip einen Unterschied ob ich einen Wert x-fach skaliere und 0.0012345 oder 0.12345 oder 123.45 oder 12345000.00 darstellen möchte?

Wenn ich x-fach eine Multiplikation durchführe, kann ich mir das vorstellen aber bei der einmaligen Konvertierung sollte das doch egal sein, oder?Schieben ist binär, d.h. 2,1 und 4,2 werden mit identischer relativer Präzision abgespeichert, nämlich als (vereinfacht dargestellt) 0,55 * 4 und 0,55 * 8. Multiplikation mit 10 ist in dem Sinne kein Schieben.

mfg

tatarus
2015-02-10, 18:19:31
Schieben um den Faktor 2 in IEE754 ist nur eine Addition bzw. Subtraktion auf den Exponentenbits. Schieben um den Faktor 10 ist eine Multiplikation zweier Gleitkommazahlen.

Je nachdem, ob man 32Bit, 64Bit oder 128Bit Gleitkommazahlen hat, verliert man irgendwann Präzision durch Rundung. Man kann sehr schön vorhersagen, wann das so ist.

Bei der Addition/Subtraktion und Division ist das übrigens auch nicht zu vernachlässigen.