IEEE 754 Gleitkomma-Bitdarstellung
Eingaben
| Genauigkeit | Einfach (32 Bit) |
|---|---|
| Dezimalzahl | 3,14 |
IEEE 754 Gleitkomma-Bitdarstellung
Dezimalzahl in IEEE-754-Bitfelder zerlegen: Vorzeichen-Bit, Exponentenfeld mit Biaskorrektur, Mantissenbits und Hexadezimaldarstellung – für einfache (32 Bit) und doppelte (64 Bit) Genauigkeit.
Eingaben
Zahl
Ergebnisse
Geben Sie einen Wert ein, um die Ergebnisse zu sehen.
Bitaufteilung
Gespeicherter Wert
IEEE 754 Gleitkomma-Bitdarstellung
Nahezu jede Zahl, die ein Prozessor verarbeitet, ist eine Gleitkommazahl. Anstatt alle reellen Zahlen explizit zu erfassen, speichert der Rechner drei Komponenten: ein Vorzeichen-Bit, ein skaliertes Exponentenfeld und einen gebrochenen Signifikanden fester Breite – und rekonstruiert daraus den Zahlenwert. Der Standard IEEE 754, veröffentlicht 1985 und überarbeitet 2008, legt dieses Verfahren verbindlich fest. Alle gängigen Programmiersprachen und Prozessorarchitekturen halten sich daran.
Bitaufteilung
Ein IEEE-754-Wert in einfacher Genauigkeit (32 Bit) gliedert sich in drei Felder, die in einem einzigen 32-Bit-Wort zusammengefasst sind:
| Feld | Bits | Breite |
|---|---|---|
| Vorzeichen | 31 | 1 |
| Exponent | 30–23 | 8 |
| Mantisse | 22–0 | 23 |
Bei doppelter Genauigkeit (64 Bit) wird der Exponent auf 11 Bit und die Mantisse auf 52 Bit erweitert; das Vorzeichen-Bit bleibt 1 Bit.
Für eine normalisierte Zahl gilt die Rekonstruktionsformel:
(−1)S×1.M×2E−biasDabei ist das Vorzeichen-Bit, der in Binärdarstellung interpretierte gebrochene Mantissenanteil und der Bias beträgt 127 bei einfacher bzw. 1023 bei doppelter Genauigkeit. Das führende 1 in ist implizit – es wird nicht gespeichert, was effektiv ein zusätzliches Präzisionsbit liefert.
Warum 0,1 nicht exakt darstellbar ist
Die meisten geläufigen Dezimalbrüche haben im Dualsystem keine endliche Darstellung. Die Zahl 0,1 entspricht im Binärsystem einer periodisch wiederkehrenden Bitfolge:
0,110=0,0001100110011…2Da das Mantissenfeld eine feste Breite besitzt (23 Bit bei einfacher, 52 Bit bei doppelter Genauigkeit), wird diese unendliche Folge auf den nächstgelegenen darstellbaren Wert gerundet. Bei doppelter Genauigkeit ergibt sich dabei der gespeicherte Wert 0,10000000000000000555, der zwar sehr nah an 0,1 liegt, aber nicht exakt gleich ist. Werden zwei solcher gerundeten Werte addiert, pflanzen sich die Fehler fort:
0,1+0,2=0,30000000000000004Dies ist kein Programmfehler, sondern die vorhersehbare Folge der binären Zahlendarstellung. Das Feld Gespeicherter Wert zeigt das exakte Dezimaläquivalent des Bitmusters, sodass die Rundung für jeden beliebigen Eingabewert direkt ablesbar ist.
Sonderwerte
IEEE 754 reserviert zwei Exponentenmuster für Sonderfälle:
| Exponentenbits | Mantisse | Bedeutung |
|---|---|---|
| Alle null (0) | alles null | ±0 |
| Alle null (0) | ungleich null | Subnormal (sehr kleiner Wert) |
| Alle eins (255/2047) | alles null | ±Unendlich |
| Alle eins (255/2047) | ungleich null | NaN (Not a Number) |
Subnormale Zahlen verzichten auf das implizite führende 1-Bit, um Werte unterhalb der kleinsten normalisierten Zahl darstellen zu können – auf Kosten einer geringeren Präzision. ±Unendlich entsteht bei Überlauf oder Division durch null. NaN wird bei undefinierten Operationen wie 0 ÷ 0 oder erzeugt.
Einfache und doppelte Genauigkeit im Vergleich
Einfache Genauigkeit belegt 32 Bit und erreicht etwa 7 signifikante Dezimalstellen; der darstellbare Bereich umfasst grob ±1,2 × 10⁻³⁸ bis ±3,4 × 10³⁸. Doppelte Genauigkeit belegt 64 Bit, bietet 15 bis 17 signifikante Stellen und reicht von ±2,2 × 10⁻³⁰⁸ bis ±1,8 × 10³⁰⁸.
Die meisten Allzweck-Programmiersprachen verwenden standardmäßig doppelte Genauigkeit für ihren Gleitkommatyp (double in C/C++/Java, float in Python). Einfache Genauigkeit findet sich vor allem in Grafikpipelines, Gewichtsmatrizen neuronaler Netze und eingebetteter Firmware, wo Speicherbandbreite und Durchsatz wichtiger sind als maximale Rechengenauigkeit.
Hexadezimaldarstellung
Das Hexadezimalfeld fasst alle Bits der Zahl als kompakten Code zusammen. Jede Hexadezimalstelle steht für 4 Bit, daher benötigt ein einfachgenauer Wert 8 Hex-Stellen, ein doppeltgenauer 16. In der Praxis verwenden Entwicklerinnen und Entwickler die Hexdarstellung, um Gleitkommazahlen auf Bitebene zu vergleichen, Sondermuster wie Unendlich oder NaN zu erkennen und die Serialisierung zu debuggen, bei der exakte Bitmuster plattformübergreifend erhalten bleiben müssen.
Die Kreiszahl π ergibt in einfacher Genauigkeit 0x40490FDB und in doppelter Genauigkeit 0x400921FB54442D18. Am Hex-Wert ist unmittelbar erkennbar, dass die doppeltgenaue Darstellung deutlich mehr Mantissenstellen enthält. Für eine vertiefte Beschäftigung mit Binär- und Hexadezimalrechnung steht der Zahlenbasis-Konverter zur Verfügung.
Häufig gestellte Fragen (FAQ)
Warum lässt sich 0,1 nicht exakt in binärer Gleitkommadarstellung speichern?
IEEE 754 kodiert Zahlen im Binärsystem, und der Dezimalbruch 0,1 hat im Dualsystem keine endliche Darstellung – ähnlich wie 1/3 im Dezimalsystem. Das Bitmuster enthält daher den nächstgelegenen darstellbaren Wert, der bei doppelter Genauigkeit ungefähr 0,10000000000000000555 beträgt.
Werden zwei solche gerundeten Werte addiert, pflanzen sich die Fehler fort: 0,1 + 0,2 ergibt 0,30000000000000004 statt genau 0,3. Das Feld „Gespeicherter Wert" zeigt den exakten Dezimaläquivalent des Bitmusters, sodass die Rundung direkt ablesbar ist.
Wann sollte einfache, wann doppelte Genauigkeit verwendet werden?
Doppelte Genauigkeit (64 Bit) bietet etwa 15 bis 17 signifikante Dezimalstellen und ist der Standard in den meisten Programmiersprachen.
Einfache Genauigkeit (32 Bit) erreicht etwa 7 signifikante Stellen, benötigt aber nur halb so viel Arbeitsspeicher und lässt sich auf Hardware mit dedizierten 32-Bit-Gleitkommaeinheiten schneller verarbeiten – typisch in Grafikpipelines, Frameworks für maschinelles Lernen und eingebetteten Systemen, bei denen Speicherbandbreite wichtiger ist als Rechengenauigkeit.
Weitere Empfehlungen
Zahlenbasis-Konverter
Ganze Zahlen zwischen Binär, Oktal, Dezimal, Hex und den Basen 2–36 umrechnen. Zahl eingeben, Quell- und Zielbasis wählen – fertig.