IEEE 754 Float-Visualizer

Alle Bits einzeln schalten, Komponenten (Vorzeichen, Exponent, Mantisse) live beobachten und die IEEE 754-Darstellung verstehen.

Beispielwerte

Bit-Raster

Klicken = Bit umschalten · MSB links
Vorzeichen (1 Bit) Exponent (8 Bits, Bias=127) Mantisse / Fraction (23 Bits)
31302928272625242322212019181716
SEEEEEEEEMMMMMMM
1514131211109876543210
MMMMMMMMMMMMMMMM
Dezimalwert
0
Hexadezimal
0x00000000
Binär
0|00000000|00000000000000000000000

Komponenten-Aufschlüsselung

0
Vorzeichen-Bit · Bit 31
+ positiv
(-1)^0 = +1

Bestimmt ausschließlich das Vorzeichen. 0 = positiv, 1 = negativ. Daher existieren +0 und -0.

00000000
8 Bits · Bits 30..23
Rohwert: 0
Bias: 127
Alle Bits = 0 → ±0 (Null)

Der Exponent wird mit einem Bias gespeichert damit keine Vorzeichenbits nötig sind. Echter Exponent = Rohwert − 127 (Bereich -126 bis 127).

0000 0000 0000 0000 0000 000
23 Bits · Bits 22..0
Fraktionswert: 0.0000000
1.M = 1.0000000(implicit leading 1)

Jedes Bit i trägt 2^-(i+1) bei (0,5 · 0,25 · 0,125 …). Bei normalisierten Zahlen wird eine führende 1 implizit addiert → spart 1 Bit Präzision.

Gesamtformel
(-1)0  ×  2-127  ×  1.0000000
= 1.00000 × 2-127
= 0

IEEE 754 – Wie es funktioniert

🔴 Vorzeichen (Sign)

1 Bit — Bit 31

0 = positiv, 1 = negativ.

Ändert nur das Vorzeichen, nicht den Betrag. Deshalb gibt es +0 und -0 — mathematisch gleich, aber unterschiedliche Bits.

🟡 Exponent (Biased)

8 Bits — gespeichert mit Bias 127.

Echter Exponent = gespeicherter Wert − 127
Bereich: -126 bis +127

Sonderregel: Alle 0 → Null/Denorm, alle 1 → Inf/NaN.

🟢 Mantisse (Fraction)

23 Bits — der gebrochene Anteil.

Bei normalisierten Zahlen wird eine führende 1 implizit ergänzt:
Wert = 1.M (binär)

Jedes Bit i steht für 2-(i+1) (1/2, 1/4, 1/8 …)

Sonderwerte
SExponentMantisseBedeutung
0alle 0alle 0+0
1alle 0alle 0−0
0alle 1alle 0+∞
1alle 1alle 0−∞
alle 1≠ 0NaN
alle 0≠ 0Denormalisiert
Wertebereich float32
Max (norm):≈ 3.4028 × 10³⁸
Min (norm):≈ 1.1755 × 10⁻³⁸
Min (denorm):≈ 1.4 × 10⁻⁴⁵
Epsilon:≈ 1.19 × 10⁻⁷
~7 signifikante Dezimalstellen
⚠️ Warum gilt 0.1 + 0.2 ≠ 0.3?

Dezimalbrüche wie 0.1 oder 0.2 lassen sich binär nicht exakt darstellen — ähnlich wie 1/3 im Dezimalsystem unendlich viele Stellen hat. Die Mantisse hat nur 23 Bits, daher muss gerundet werden. Probiere: Preset 0.1 anklicken — der gezeigte Dezimalwert weicht leicht von 0.1 ab (f32 mehr als f64).

💡 Denormalisierte Zahlen

Wenn der Exponent alle 0 enthält und die Mantisse ≠ 0 ist, ist die Zahl denormalisiert. Dabei entfällt die implizite führende 1 → Wert = 0.M × 2-126. Das ermöglicht sehr kleine Zahlen nahe 0 unter Verlust der vollen Präzision (gradual underflow). Preset Denorm zeigt ein Beispiel.