IEEE 754 Umrechner

Dieses Java-Applet dient zur Umrechnung zwischen der Dezimaldarstellung von Zahlen (z.B. "1.02") und den von modernen CPUs verwendeten IEEE 754-Fließkommazahlen. Aus Platzgründen werden nur Zahlen mit einfacher Genauigkeit (32 Bit) dargestellt.
Benutzung: Das Applet dient zur Umrechnung von IEEE-754 Zahlen mit 32-Bit Genauigkeit (single precision). Für Ein- bzw. Ausgabe steht einerseits eine Leiste mit Buttons für jedes einzelne Bit, andererseits diverse Textfelder zur Verfügung. Eingaben in den Textfeldern müssen mit Return abgeschlossen werden, die Anzeige in allen anderen Feldern wird dann aktualisiert. Als zusätzliche Information erscheint der Wert der Floatzahl nach Umwandlung in doppelte Genauigkeit, so dass eventuelle, in der normalen Dezimaldarstellung nicht ersichtliche Rundungsfehler leicht erkannt werden können.
Besondere Werte: Als Eingabe im Dezimalfeld werden auch die Worte "Infinity", "-Infinity" sowie "NaN" erkannt und umgewandelt. Fü "NaN" sind verschiedene Binärdarstellungen zulässig. Zu beachten ist auch, dass es sowohl eine +0 als auch eine -0 gibt.
Umrechnung: Allgemein ergibt sich der Wert einer IEEE-754-Zahl als:
Vorzeichen * 2exponent * mantisse
Das Vorzeichen wird aus Bit 32 gebildet. Der Exponent ergibt sich aus Bits 24-31 durch Subtraktion von 127. Die Mantisse wird aus den restlichen Bits gebildet, wobei eine nicht dargestellte 1 vorangestellt wird. Die tatsächlich dargestellten Bits entsprechen den Nachkommastellen (Wertigkeit 1/2, 1/4, ...), so dass der Wert zwischen 1 und 2 liegt. Eine Ausnahme sind Zahlen mit einem Exponent von -127 (binär 00000000), hier wird für einen fließenden Übergang zum Wert 0.0 hin auf die implizite 1 in der Mantisse verzichtet. Andere Wertebereiche für die Mantisse sind durch Anpassung des Offsets des Exponenten ebenfalls möglich.
Rundungsfehler: Bei Eingabe von "0.1" kann man sehr gut sehen, dass diese Zahl nicht exakt als Fließkommazahl darstellbar ist. Vor allem beim Ändern des letzten Bits wird dies in der Anzeige des entsprechenden double-Wertes deutlich.