IEEE-754-Rechner

0,1 als float: 0x3DCCCCCD, gespeichert 0,100000001490116… Vorzeichen, Exponent, Mantisse, Rundungsfehler exakt - für half, float und double, auch Hex zurück.

Stand 23.09.2026Quelle: WikipediaVon Sebastian Wiercinski

Deine Angaben

Ergebnis aktualisiert sich direkt
Richtung

Komma oder Punkt, Exponent mit e, Brüche wie 1/3, außerdem inf und NaN.

Format
Hex-Darstellung0x3DCCCCCD
Bits (Vorzeichen | Exponent | Mantisse)
0 01111011 10011001100110011001101
Vorzeichen-Bit
0
Exponent (Bits)
01111011
Exponent gespeichert (mit Bias)
123
Exponent tatsächlich (ohne Bias)
-4
Mantisse (Bits)
10011001100110011001101
Zerlegung
(−1)^0 × 2^−4 × 1,6000000238418579101…
Exakt gespeicherter Wert
0,100000001490116119384765625
Kürzeste Schreibweise (wie printf/toString)
0,1
Exakt darstellbar?
nein, gerundet
Rundungsfehler (gespeichert − eingegeben)
+1,49012 · 10^−9
Relativer Fehler
1,49 · 10^−8
Abstand zur nächsten Zahl (ULP)
7,45058 · 10^−9
Kategorie
Normalisiert
Rechenweg mit deinen Zahlen
  1. Format binary32 (float): 1 Vorzeichenbit, 8 Exponentbits (Bias 127), 23 Mantissenbits
  2. Exponent: 01111011 = 123; 123 − 127 = −4
  3. Wert = (−1)^0 × 2^−4 × 1,6000000238418579101… = 0,100000001490116119384765625
  4. Bits zusammengesetzt: 0 01111011 10011001100110011001101 = 0x3DCCCCCD

Was macht ein IEEE 754 Rechner?

Ein ieee 754 rechner zeigt dir, wie eine Dezimalzahl intern als Gleitkommazahl gespeichert wird. Das ist vor allem dann hilfreich, wenn eine Zahl im Code anders aussieht als erwartet, wenn du ein Hex-Bitmuster aus einem Debugger liest oder wenn du wissen willst, ob eine Zahl exakt darstellbar ist.

IEEE 754 zerlegt eine Zahl in Vorzeichen, Exponent und Mantisse. Aus diesen Feldern entsteht ein Bitmuster, das häufig als Hex-Wert angezeigt wird. Bei der Eingabe 0,1 im Format float entsteht zum Beispiel 0x3DCCCCCD. Die Zahl wird dabei nicht exakt gespeichert, sondern als 0,100000001490116119384765625. Die kürzeste Ausgabe bleibt trotzdem 0,1, weil viele Programmiersprachen beim Anzeigen runden.

Du wählst im Rechner die Richtung, gibst Dezimalzahl oder Bitmuster ein und stellst das Format half, float oder double ein.

Der Rechner ist damit ein ieee 754 konverter in beide Richtungen: Dezimal nach Hex und Bits, oder Hex beziehungsweise Binär zurück zur Dezimalzahl. Für 3F800000 als float kommt der Dezimalwert 1 heraus. Für BF800000 als float kommt -1 heraus. Das Vorzeichen-Bit ist dann anders, Exponent und Mantisse bleiben in diesem Beispiel gleich.

Wie funktioniert die IEEE 754 Berechnung?

Für normalisierte Werte lautet die Rechnung in Worten: Vorzeichenfaktor mal Zweierpotenz aus gespeichertem Exponenten abzüglich Bias mal eins plus Mantisse geteilt durch zwei hoch p. Der Bias hängt vom Format ab. Bei float gilt k = 8, p = 23 und Bias 127. Bei double gilt k = 11, p = 52 und Bias 1023. Bei subnormalen Werten wird nicht mit der führenden eins gerechnet, sondern nur mit Mantisse geteilt durch zwei hoch p.

Ein Beispiel mit 0,1 als float zeigt den Ablauf:

  • Format: binary32 mit 1 Vorzeichenbit, 8 Exponentbits, 23 Mantissenbits und Bias 127
  • Bits: 0 01111011 10011001100110011001101
  • Vorzeichen-Bit: 0
  • Exponent gespeichert: 123
  • Exponent tatsächlich: -4
  • Mantisse: 10011001100110011001101
  • Hex-Darstellung: 0x3DCCCCCD

Der Exponent wird also nicht direkt als -4 gespeichert. Im Bitmuster steht 01111011, das dem gespeicherten Exponenten 123 entspricht. Erst nach Abzug des Bias ergibt sich der tatsächliche Exponent -4. Die Zerlegung lautet: (-1)^0 × 2^-4 × 1,6000000238418579101… Daraus entsteht der exakt gespeicherte Wert 0,100000001490116119384765625.

Wichtig für das Verständnis: Die Mantisse enthält nicht die Dezimalziffern der Eingabe. Sie beschreibt den binären Anteil der Zahl. Deshalb sehen Werte wie 0,1 oder 0,2 im Binärsystem oft periodisch aus und müssen auf die vorhandenen Mantissenbits gerundet werden.

float, double und half im Vergleich

Die Formate unterscheiden sich vor allem darin, wie viele Bits für Exponent und Mantisse verfügbar sind. Mehr Mantissenbits bedeuten mehr Genauigkeit, mehr Exponentbits bedeuten einen größeren Wertebereich. Der Rechner deckt half, float und double ab.

Format Bits Exponent Mantisse Bias Dezimalstellen
binary16 (half) 16 5 10 15 3,31
binary32 (float) 32 8 23 127 7,22
binary64 (double) 64 11 52 1.023 15,95

Der Unterschied wird bei 0,1 sichtbar. Als float wird 0,1 zu 0x3DCCCCCD und exakt als 0,100000001490116119384765625 gespeichert. Als double wird 0,1 zu 0x3FB999999999999A und exakt als 0,1000000000000000055511151231257827021181583404541015625 gespeichert. Beide Werte sind gerundet, aber double liegt deutlich näher an der ursprünglichen Eingabe.

Nicht jede gerundete Zahl ist ein Problem. 1,5 ist als half exakt darstellbar und wird zu 0x3E00. Auch -2,75 ist als float exakt darstellbar und wird zu 0xC0300000. 1000 ist als double ebenfalls exakt darstellbar und wird zu 0x408F400000000000. Ob eine Zahl exakt ist, hängt nicht daran, ob sie im Dezimalsystem kurz aussieht, sondern daran, ob sie im Binärsystem ohne Rundung in die Mantisse passt.

Warum ergibt 0,1 + 0,2 nicht genau 0,3?

Der bekannte Effekt entsteht, weil 0,1 und 0,2 im double-Format bereits gerundete Werte sind. 0,1 wird als 0x3FB999999999999A gespeichert, 0,2 als 0x3FC999999999999A. Die exakt gespeicherten Werte lauten 0,100000000000000005551115123125… und 0,200000000000000011102230246251…

Wenn diese gespeicherten Werte addiert werden, entsteht als Ergebnis das Bitmuster 0x3FD3333333333334. Die Ausgabe lautet 0,30000000000000004. Der direkt eingegebene Wert 0,3 liegt dagegen bei 0x3FD3333333333333 und wird exakt als 0,299999999999999988897769753748… gespeichert.

Das heißt: Das Rechenergebnis und die eingegebene Dezimalzahl 0,3 landen auf benachbarten darstellbaren Werten. Beide werden bei kurzer Ausgabe oft harmlos dargestellt, aber im exakten Speicherwert sieht man den Unterschied.

Für die Praxis heißt das: Vergleiche Gleitkommazahlen nicht blind auf exakte Gleichheit, wenn vorher gerechnet wurde. Für Anzeigen, Messwerte oder Simulationen arbeitest du besser mit einer passenden Toleranz. Für Geldbeträge oder feste Dezimalstellen ist ein Dezimaltyp oder eine Ganzzahl-Skalierung oft besser geeignet als float oder double.

Typische Fehler beim IEEE 754 umrechnen

Ein häufiger Fehler ist die Verwechslung von Hex-Darstellung und Dezimalwert. 3F800000 ist kein Dezimalwert, sondern ein Bitmuster. Als float interpretiert bedeutet es 1. Als double wäre ein anderes Format nötig, denn double erwartet ein anderes Bitmuster. Achte deshalb immer darauf, ob du float, double oder half auswählst.

Ein zweiter Fehler ist die Annahme, dass die kürzeste Ausgabe dem exakten Speicherwert entspricht. Bei 0,1 als float zeigt die kurze Schreibweise 0,1, der gespeicherte Wert ist aber 0,100000001490116119384765625. Bei 0,3 als double zeigt die kurze Schreibweise 0,3, gespeichert ist 0,299999999999999988897769753748434595763683319091796875.

Auch Sonderwerte werden leicht falsch gelesen. IEEE 754 kennt positive und negative Null, Unendlich und Not a Number. Beispiele:

Wert float double
+0 0x00000000 0x0000000000000000
negative Null 0x80000000 0x8000000000000000
+∞ 0x7F800000 0x7FF0000000000000
-∞ 0xFF800000 0xFFF0000000000000
Not a Number (quiet) 0x7FC00000 0x7FF8000000000000

Wenn du Hexwerte aus Speicherabbildern übernimmst, kann außerdem die Byte-Reihenfolge eine Rolle spielen. Der IEEE-754-Wert selbst ist durch die Bits definiert, aber die Reihenfolge der Bytes im Speicher kann anders aussehen. Prüfe daher, ob dein Hexwert schon in der richtigen Reihenfolge notiert ist.

Tabellen zum Nachschlagen

IEEE 754 Formate im Vergleich: half, float, double, quad

FormatBitsExponentMantisseBiasGrößte ZahlKleinste normaleKleinste subnormaleMaschinengenauigkeit 2^−pDezimalstellen
binary16 (half)16510156,5504 · 10^46,1035 · 10^−55,9605 · 10^−89,7656 · 10^−43,31
binary32 (float)328231273,4028 · 10^381,1755 · 10^−381,4013 · 10^−451,1921 · 10^−77,22
binary64 (double)6411521.0231,7977 · 10^3082,2251 · 10^−3084,9407 · 10^−3242,2204 · 10^−1615,95
binary128 (quad)1281511216.3831,1897 · 10^49323,3621 · 10^−49326,4752 · 10^−49661,9259 · 10^−3434,02

Dezimalzahlen als float (binary32) in Hex

Exakt gespeicherter Wert, gekürzt auf 24 Stellen
ZahlHexGespeichertExakt?
00x000000000ja
0,10x3DCCCCCD0,100000001490116119384765…nein
0,20x3E4CCCCD0,200000002980232238769531…nein
0,250x3E8000000,25ja
0,30x3E99999A0,300000011920928955078125nein
0,50x3F0000000,5ja
10x3F8000001ja
1,50x3FC000001,5ja
20x400000002ja
30x404000003ja
100x4120000010ja
1000x42C80000100ja
10000x447A00001000ja
−10xBF800000−1ja
−42,50xC22A0000−42,5ja
1/30x3EAAAAAB0,333333343267440795898437…nein
3,141592653589790x40490FDB3,1415927410125732421875nein
167772170x4B80000016777216nein

Dezimalzahlen als double (binary64) in Hex

Exakt gespeicherter Wert, gekürzt auf 24 Stellen
ZahlHexGespeichertExakt?
00x00000000000000000ja
0,10x3FB999999999999A0,100000000000000005551115…nein
0,20x3FC999999999999A0,200000000000000011102230…nein
0,250x3FD00000000000000,25ja
0,30x3FD33333333333330,299999999999999988897769…nein
0,50x3FE00000000000000,5ja
10x3FF00000000000001ja
1,50x3FF80000000000001,5ja
20x40000000000000002ja
30x40080000000000003ja
100x402400000000000010ja
1000x4059000000000000100ja
10000x408F4000000000001000ja
−10xBFF0000000000000−1ja
−42,50xC045400000000000−42,5ja
1/30x3FD55555555555550,333333333333333314829616…nein
3,141592653589790x400921FB54442D113,14159265358979000737349…nein
167772170x417000001000000016777217ja

Warum 0,1 + 0,2 nicht 0,3 ergibt (double)

Die Summe landet auf der nächsten double-Zahl über 0,3
AusdruckHexExakt gespeichertAusgabe
0,10x3FB999999999999A0,100000000000000005551115123125…0,1
0,20x3FC999999999999A0,200000000000000011102230246251…0,2
0,1 + 0,20x3FD33333333333340,300000000000000044408920985006…0,30000000000000004
0,30x3FD33333333333330,299999999999999988897769753748…0,3

Sonderwerte in Hex: 0, −0, Unendlich, Not a Number, größte und kleinste Zahl

Werthalffloatdouble
+00x00000x000000000x0000000000000000
−00x80000x800000000x8000000000000000
+∞0x7C000x7F8000000x7FF0000000000000
−∞0xFC000xFF8000000xFFF0000000000000
Not a Number (quiet)0x7E000x7FC000000x7FF8000000000000
10x3C000x3F8000000x3FF0000000000000
größte Zahl0x7BFF0x7F7FFFFF0x7FEFFFFFFFFFFFFF
kleinste normale0x04000x008000000x0010000000000000
kleinste subnormale0x00010x000000010x0000000000000001

Beispiele zum Ausprobieren

Grafiken für deine Website

Du darfst die Grafiken kostenlos in Blogs, Artikeln, Präsentationen oder im Unterricht verwenden - einzige Bedingung ist ein Link auf diese Seite als Quelle (Lizenz CC BY 4.0).

IEEE-754-Rechner: Die Dezimalzahl 0,1 wird als float (binary32) zu 0x3DCCCCCD und exakt als 0,100000001490116119384765625 gespeichert - 1,49 · 10^−9 zu viel. Als double (0x3FB999999999999A) ist der Fehler 5,55 · 10^−18; deshalb ergibt 0,1 + 0,2 in fast allen Programmiersprachen 0,30000000000000004.
Auf einen Blick
PNG herunterladen
IEEE 754 Formate im Vergleich: half, float, double, quad (Tabelle)
IEEE 754 Formate im Vergleich: half, float, double, quad
PNG herunterladen

Häufige Fragen

Wie lautet die IEEE-754-Darstellung von 0,1 als float?

0,1 als float ist 0x3DCCCCCD. Die Bits sind 0 01111011 10011001100110011001101. Exakt gespeichert wird 0,100000001490116119384765625, obwohl die kürzeste Ausgabe 0,1 lautet. Der Wert ist also nicht exakt darstellbar, sondern gerundet.

Wie lautet 0,1 als double in IEEE 754?

0,1 als double ist 0x3FB999999999999A. Der exakt gespeicherte Wert lautet 0,1000000000000000055511151231257827021181583404541015625. Auch double speichert 0,1 nicht exakt, die Abweichung ist aber kleiner als bei float.

Was bedeutet 3F800000 als IEEE-754 float?

3F800000 als IEEE-754 float bedeutet 1. Das Bitmuster ist 0 01111111 00000000000000000000000. Das Vorzeichen-Bit ist 0, der gespeicherte Exponent ist 127 und der tatsächliche Exponent ist 0.

Was ist der Unterschied zwischen float und double?

float hat 32 Bit, double hat 64 Bit. Bei float sind 8 Exponentbits und 23 Mantissenbits vorgesehen, bei double 11 Exponentbits und 52 Mantissenbits. Double kann dadurch mehr Dezimalstellen abbilden und viele Rundungsfehler kleiner halten.

Warum ist 0,3 als double nicht exakt?

0,3 als double wird als 0x3FD3333333333333 gespeichert. Der exakte Speicherwert ist 0,299999999999999988897769753748434595763683319091796875. Die kurze Ausgabe kann trotzdem 0,3 lauten, weil die Anzeige gerundet wird.

Welche Dezimalzahlen sind in IEEE 754 exakt darstellbar?

Exakt darstellbar sind zum Beispiel 0,25, 0,5, 1,5, -2,75 und 1000 in den passenden Formaten. Nicht exakt sind zum Beispiel 0,1, 0,2, 0,3 und 1/3. Entscheidend ist, ob die Zahl binär mit der verfügbaren Mantisse endet.

Was bedeuten NaN und Infinity in IEEE 754?

Infinity steht für Unendlich, NaN für Not a Number. Als float ist +∞ 0x7F800000 und -∞ 0xFF800000. Ein quiet NaN ist im float-Format 0x7FC00000. Im double-Format ist +∞ 0x7FF0000000000000.

Wie erkenne ich den Rundungsfehler bei float?

Den Rundungsfehler erkennst du am Unterschied zwischen Eingabe und exakt gespeichertem Wert. Bei 0,1 als float steht im Speicher 0,100000001490116119384765625 statt 0,1. Der Rechner zeigt zusätzlich, ob der Wert exakt darstellbar ist oder gerundet wurde.

Quellen und Prüfung

Erstellt von
Sebastian Wiercinski, Herausgeber
Stand
23.09.2026
Diese Seite zitieren

IEEE-754-Rechner. Rechnerinfo, Stand 23.09.2026. https://rechner-info.de/technik/ieee-754-rechner