IEEE 754 Gleitkommazahlen-Konverter
Dezimalzahlen online in IEEE 754 Binär- und Hex-Darstellung umrechnen — halbe, einfache, doppelte Genauigkeit und bfloat16. Exakt gespeicherter Wert, Rundungsfehler und Bit-Layout. 100 % im Browser.
| Vorzeichen | |
| Exponent | |
| Mantisse |
- Ihre Eingabe
- Tatsächlich gespeichert
- Rundungsfehler
- Vorheriger
- Nächster
- ULP (Abstand)
| Format | Bits gesamt | Vorzeichen | Exponent | Mantisse | Bias | Max. endlicher Wert | Dezimalstellen |
|---|---|---|---|---|---|---|---|
| binary16 (FP16) | 16 | 1 | 5 | 10 | 15 | 65504 | ~3.3 |
| bfloat16 | 16 | 1 | 8 | 7 | 127 | ≈3.39×10³⁸ | ~2.3 |
| binary32 (FP32) | 32 | 1 | 8 | 23 | 127 | ≈3.40×10³⁸ | ~7.2 |
| binary64 (FP64) | 64 | 1 | 11 | 52 | 1023 | ≈1.80×10³⁰⁸ | ~15.9 |
Was sind IEEE 754 Gleitkommazahlen?
IEEE 754 ist der Standard, der festlegt, wie Computer reelle Zahlen binär speichern. Jeder Wert wird in drei Felder gepackt: ein Vorzeichenbit, einen Exponenten (mit einem Bias gespeichert, damit er sowohl große als auch winzige Größenordnungen darstellen kann) und eine Mantisse mit den signifikanten Ziffern. Nahezu jede CPU, GPU und Programmiersprache verwendet ihn — deshalb tauchen dieselben Rundungsüberraschungen in JavaScript, Python, C und SQL gleichermaßen auf.
Die zentrale Einsicht: Binäres Gleitkomma kann nur Zahlen der Form m × 2ⁿ darstellen. Dezimalbrüche wie 0.1 sind in Basis 2 unendlich periodisch — 0.000110011001100… —, also speichert das Format stattdessen den nächstgelegenen darstellbaren Nachbarn. In einfacher Genauigkeit ist dieser Nachbar 0.100000001490116119384765625; in doppelter Genauigkeit ist er 0.1000000000000000055511151231257827021181583404541015625. Keiner von beiden ist 0.1. Jede nachgelagerte Merkwürdigkeit — 0.1 + 0.2 ≠ 0.3, driftende Summen, fehlschlagende Gleichheitsprüfungen — folgt aus dieser einen Tatsache, und dieser Konverter macht sie sichtbar, indem er den exakt gespeicherten Wert ausgibt statt einer zurückgerundeten Näherung.
Der Standard reserviert außerdem Bitmuster für Sonderwerte. Ein Exponent aus lauter Einsen codiert ±Infinity (Mantisse null) oder NaN (Mantisse ungleich null); ein Exponent aus lauter Nullen codiert die vorzeichenbehaftete Null (Mantisse null) oder subnormale Zahlen (Mantisse ungleich null), die die Unterlauf-Lücke neben null mit reduzierter Präzision füllen. Die vier Formate dieses Tools — binary16/FP16, bfloat16, binary32/FP32, binary64/FP64 — unterscheiden sich nur darin, wie viele Bits sie jedem Feld geben: Mehr Exponentenbits bedeuten mehr Wertebereich, mehr Mantissenbits mehr Präzision. bfloat16, der Favorit im Machine Learning, ist schlicht FP32 mit abgeschnittenen unteren 16 Mantissenbits: gleicher Wertebereich, deutlich gröbere Präzision.
Ein nützliches mentales Modell: Die darstellbaren Gleitkommazahlen bilden ein Raster auf dem Zahlenstrahl, dessen Abstand — eine Einheit an der letzten Stelle, kurz ULP — sich an jeder Zweierpotenz verdoppelt. Nahe 1.0 beträgt der Rasterabstand eines Double etwa 2,22 × 10⁻¹⁶; nahe 2⁵³ ist er eine ganze Zahl, weshalb Doubles jenseits von 2⁵³ nicht mehr zuverlässig zählen können. Das Nachbarn-Panel dieses Tools zeigt genau dieses Raster: den vorherigen und den nächsten darstellbaren Wert um Ihre Eingabe herum, samt dem exakten Abstand dazwischen.
// Float ↔ hex through the raw IEEE 754 bits (works in any browser / Node.js)
const buf = new DataView(new ArrayBuffer(8));
function floatToHex32(value) {
buf.setFloat32(0, value); // rounds to nearest even
return '0x' + buf.getUint32(0).toString(16).toUpperCase().padStart(8, '0');
}
function hexToFloat32(hex) {
buf.setUint32(0, parseInt(hex, 16));
return buf.getFloat32(0);
}
floatToHex32(0.1); // '0x3DCCCCCD'
floatToHex32(3.14159); // '0x40490FD0'
hexToFloat32('3DCCCCCD'); // 0.10000000149011612 Hauptfunktionen
Vier Formate, eine Ansicht
Half (FP16), bfloat16, Single (FP32) und Double (FP64) — ein Klick wechselt das Format und die gesamte Seite rechnet neu, sodass der Vergleich, wie dieselbe Zahl in jedem Format landet, nur Sekunden dauert.
Anklickbares Bit-Raster
Jedes Bit ist ein Button. Schalten Sie das Vorzeichen um, verschieben Sie den Exponenten oder ändern Sie ein Mantissenbit und sehen Sie zu, wie sich Dezimal-, Hex- und Binäransicht sofort aktualisieren — der schnellste Weg, ein Gefühl für die Codierung zu entwickeln.
Exakt gespeicherter Wert statt Näherung
Das Tool berechnet die vollständige Dezimalentwicklung der gespeicherten Bits mit exakter Big-Integer-Arithmetik — alle 55 Ziffern für die 0.1 eines Double — plus den exakten vorzeichenbehafteten Rundungsfehler gegenüber Ihrer Eingabe.
Nachbarn und ULP
Sehen Sie den vorherigen und den nächsten darstellbaren Wert um die aktuelle Zahl sowie den exakten Abstand (ULP) dazwischen — den Rasterabstand, der bestimmt, wie viel Präzision Sie bei einer Größenordnung tatsächlich haben.
Sonderwerte mit einem Klick
Chips laden ±0, ±Infinity, NaN, die kleinste subnormale und die größte endliche Zahl des gewählten Formats; das Klassifizierungs-Badge benennt, was das aktuelle Bitmuster codiert.
Teilbare Permalinks, kein Upload
„Link kopieren“ codiert Format und exaktes Bitmuster in die URL — ideal für Bug-Reports, Code-Reviews und die Lehre. Alles läuft in Ihrem Browser; nichts von dem, was Sie eingeben, verlässt die Seite.
IEEE 754 Umrechnungsbeispiele
0.1 in einfacher Genauigkeit — der klassische Rundungsfehler
0.1
0x3DCCCCCD — tatsächlich gespeichert als 0.100000001490116119384765625
Dezimal 0.1 hat keine endliche Binärdarstellung, deshalb speichert IEEE 754 stattdessen den nächstgelegenen darstellbaren Wert. In einfacher Genauigkeit (FP32) ist das 0x3DCCCCCD, also exakt 0.100000001490116119384765625 — etwa 1,49 × 10⁻⁹ zu groß. Das Tool zeigt diesen exakt gespeicherten Wert und den exakten Fehler Ziffer für Ziffer, statt der gerundeten „0.1“, die Ihre Programmiersprache zurückgibt. Dieses eine Beispiel erklärt die meisten Gleitkomma-Überraschungen, auch warum 0.1 + 0.2 nicht gleich 0.3 ist.
Float in Hex: 3.14159 in FP32
3.14159
0x40490FD0
Geben Sie 3.14159 mit ausgewähltem Single (FP32) ein und das Hex-Feld zeigt 0x40490FD0 — Vorzeichen 0, Exponent mit Bias 128 (also 2¹), Mantisse 0x490FD0. Tatsächlich gespeichert wird 3.141590118408203125, eine Winzigkeit über Ihrer Eingabe. Die Hex-Form begegnet Ihnen in Netzwerk-Dumps, GPU-Puffern, Registeransichten und serialisierten Binärdateien, und die Umrechnung funktioniert in beide Richtungen: Fügen Sie 40490FD0 in das Hex-Feld ein, um es zurück zu dekodieren.
FP16-Maximum: Bei 65504 endet die halbe Genauigkeit
65504
0x7BFF — der größte endliche FP16-Wert
Halbe Genauigkeit hat nur 5 Exponentenbits und 10 Mantissenbits, ihr größter endlicher Wert ist daher 65504 (0x7BFF). Geben Sie 65520 oder mehr ein und das Ergebnis rundet auf Infinity (0x7C00) — eine reale Gefahr beim Quantisieren von Machine-Learning-Modellen auf FP16. Wechseln Sie zu bfloat16, und dieselben 65520 passen problemlos, denn bfloat16 behält die 8 Exponentenbits von FP32 (Wertebereich) und gibt dafür Mantissenbits (Präzision) auf. Genau dieser Kompromiss ist der Grund, warum ML-Training bfloat16 bevorzugt und kompakte Speicherung FP16.
−0 und +0: zwei verschiedene Bitmuster, ein Wert
-0
0x80000000 (FP32), während +0 gleich 0x00000000 ist
IEEE 754 kennt eine vorzeichenbehaftete Null: −0 setzt nur das Vorzeichenbit (0x80000000 in FP32), während +0 aus lauter Nullen besteht. Sie vergleichen in jeder Sprache als gleich, doch 1/−0 ist −Infinity und 1/+0 ist +Infinity — der Unterschied ist also beobachtbar. Klicken Sie im Tool auf das Vorzeichenbit, um zwischen beiden umzuschalten, und beobachten Sie, wie das Klassifizierungs-Badge auf „Null“ bleibt, während sich der Hex-Wert ändert — eine Ein-Klick-Illustration dafür, warum Gleichheit auf Bit-Ebene und numerische Gleichheit zwei verschiedene Dinge sind.
So konvertieren Sie IEEE 754 Gleitkommazahlen
- 1
Gleitkommaformat wählen
Single (FP32) ist vorausgewählt. Wechseln Sie zu Double (FP64) für Zahlen im Stil von JavaScript/Python oder zu Half (FP16) und bfloat16 für die 16-Bit-Formate aus Machine Learning und Grafik.
- 2
Dezimalzahl eingeben
Geben Sie einen beliebigen Wert ein — 0.1, -2.5e3, 65504 — oder nutzen Sie die Sonderwert-Chips für ±0, ±Infinity, NaN, die kleinste subnormale und die größte endliche Zahl. Die Umrechnung erfolgt während der Eingabe.
- 3
Farbcodiertes Bit-Layout lesen
Vorzeichenbit, Exponentenfeld und Mantisse sind in verschiedenen Farben hervorgehoben; die Feldaufschlüsselung zeigt die Rohbits, die Bias-Arithmetik und das implizite führende Bit.
- 4
Exakt gespeicherten Wert und Fehler prüfen
Das Genauigkeits-Panel gibt den tatsächlich gespeicherten Wert aus — jede Ziffer, exakt berechnet — neben dem Rundungsfehler gegenüber Ihrer Eingabe, dazu die vorherigen und nächsten darstellbaren Nachbarn und den ULP-Abstand.
- 5
Bits umschalten, Hex einfügen, Ergebnisse kopieren
Klicken Sie ein beliebiges Bit an, um es umzuschalten, oder fügen Sie Hex- (3DCCCCCD) und Binärzeichenketten ein, um sie zurück in Dezimal zu dekodieren. Kopieren Sie Hex, Binär, den exakten Wert oder einen teilbaren Link, der exakt dieses Bitmuster reproduziert.
Häufige Gleitkomma-Fehler
Dem ausgegebenen Wert statt dem gespeicherten vertrauen
Sprachen geben Gleitkommazahlen auf die kürzeste Zeichenkette gerundet aus, die verlustfrei zurückkonvertiert — 0.1 sieht deshalb sauber aus, obwohl der gespeicherte Wert es nicht ist. Beurteilen Sie Präzision anhand der exakten Entwicklung, nicht anhand dessen, was print() zeigt.
print(0.1) # 0.1 — sieht exakt aus, ist es nicht
0.1 gespeichert (FP64) = 0.1000000000000000055511151231257827021181583404541015625
Gleitkommazahlen auf exakte Gleichheit prüfen
0.1 + 0.2 landet auf dem Bitmuster 0x3FD3333333333334, während das Literal 0.3 gleich 0x3FD3333333333333 ist — ein ULP Abstand, also ist == falsch, obwohl beide als 0.3-artige Werte ausgegeben werden.
if (0.1 + 0.2 === 0.3) { … } // läuft nie if (Math.abs(a - b) < 1e-9) { … } // Toleranz passend zu Ihren Daten Auf FP16 quantisieren, ohne den Wertebereich zu prüfen
Der größte endliche FP16-Wert ist 65504. Alles darüber wird zu Infinity, und sobald ein Infinity in eine Berechnung gelangt, pflanzt es sich fort. Prüfen Sie Ihre Maxima vor dem Downcast — oder nutzen Sie bfloat16, das den Wertebereich von FP32 behält.
fp16(65520) → Infinity (0x7C00) — stiller Überlauf
bf16(65520) → endlich (bfloat16 behält 8 Exponentenbits)
NaN mit Gleichheit testen
NaN ist der einzige Wert, der ungleich sich selbst ist — mit Absicht, damit eine fehlgeschlagene Berechnung sich nicht als echte Zahl tarnen kann. Verwenden Sie die isNaN-Prüfung Ihrer Sprache statt == und bedenken Sie, dass es Millionen verschiedener NaN-Bitmuster gibt.
if (x === NaN) { … } // immer falsch, selbst wenn x NaN IST if (Number.isNaN(x)) { … } // der korrekte Test Was Sie mit dem IEEE 754 Konverter machen können
- Serialisierte Binärdaten debuggen
- Fügen Sie den Hex-Wert aus einem Netzwerk-Mitschnitt, GPU-Puffer, Register-Dump oder Dateiformat ein und dekodieren Sie ihn zum exakten Dezimalwert — oder gehen Sie den umgekehrten Weg, um Test-Fixtures zu schreiben. Hinweis zur Byte-Reihenfolge: Der angezeigte Hex-Wert ist das Big-Endian-Bitmuster; wenn Ihr Dump Little-Endian ist, kehren Sie die Byte-Reihenfolge vor dem Einfügen um.
- ML-Quantisierung verstehen
- Prüfen Sie, ob Ihre Werte die 65504-Obergrenze von FP16 überleben, vergleichen Sie den Präzisionsverlust von FP16 und bfloat16 Ziffer für Ziffer und inspizieren Sie den subnormalen Bereich, in dem Gradienten unterlaufen.
- Einen Gleitkomma-Bug erklären
- Wenn ein Kollege fragt, warum zwei „gleiche“ Zahlen sich unterscheiden, senden Sie einen Permalink mit beiden Bitmustern und den exakt gespeicherten Werten — die Diskussion erledigt sich von selbst. Für längere Dumps kombinieren Sie ihn mit dem Text-Diff-Tool.
- Die Codierung lernen oder lehren
- Lehrstoff zur Rechnerarchitektur wird greifbar, wenn Studierende die Exponentenbits anklicken und zusehen können, wie sich die Bias-Arithmetik aktualisiert. Die Feldaufschlüsselung spiegelt wider, wie Lehrbücher das Format zeichnen.
- Embedded- und Industrieregister dekodieren
- Modbus-, CAN- und Sensor-Payloads transportieren FP32-Werte routinemäßig als rohe Hex-Wörter. Fügen Sie das Wort hier ein und lesen Sie den physikalischen Wert ab, ohne ein Wegwerf-Skript zu schreiben.
IEEE 754 Formate & Sonderwerte
- Die vier Binärformate im Überblick
- binary16 (FP16): 1 Vorzeichen- + 5 Exponenten- + 10 Mantissenbits, Bias 15, Maximum 65504, ~3,3 Dezimalstellen. bfloat16: 1 + 8 + 7, Bias 127, Maximum ≈ 3,39 × 10³⁸, ~2,3 Stellen. binary32 (FP32): 1 + 8 + 23, Bias 127, Maximum ≈ 3,40 × 10³⁸, ~7,2 Stellen. binary64 (FP64): 1 + 11 + 52, Bias 1023, Maximum ≈ 1,80 × 10³⁰⁸, ~15,9 Stellen. Das Muster: Exponentenbits kaufen Wertebereich, Mantissenbits kaufen Präzision, und bfloat16 tauscht bewusst seine gesamte Präzision gegen den Wertebereich von FP32.
- Wie ein Wert zusammengesetzt wird
- Eine normale Zahl dekodiert sich als (−1)^Vorzeichen × 1.Mantisse × 2^(Exponent − Bias). Die führende 1 ist implizit — sie wird nicht gespeichert, weshalb ein 23-Bit-Mantissenfeld 24 Bits Präzision liefert. Der gespeicherte Exponent ist der wahre Exponent plus Bias (127 bei FP32), 2⁰ wird also als 01111111 gespeichert. Die Feldaufschlüsselung in diesem Tool zeigt jeden Schritt dieser Rechnung für den aktuellen Wert.
- Sonderwerte: die reservierten Exponentenmuster
- Exponent aus lauter Einsen mit Mantisse null ist ±Infinity; mit beliebiger Mantisse ungleich null ist es NaN (das kanonische Quiet NaN setzt das oberste Mantissenbit). Exponent aus lauter Nullen mit Mantisse null ist ±0; mit Mantisse ungleich null ist es eine subnormale Zahl, dekodiert als 0.Mantisse × 2^(1 − Bias) — ohne implizite führende 1. Diese Regeln sind in allen vier Formaten identisch, weshalb dieselben Chips überall funktionieren.
- Rundung: zur nächsten Zahl, ties to even
- Fällt ein Wert zwischen zwei darstellbare Zahlen, rundet der Standardmodus von IEEE 754 zur näheren; bei exaktem Gleichstand wählt er diejenige, deren letztes Mantissenbit 0 ist (ties to even), was systematische Drift verhindert. Dieser Konverter wendet genau diese Regel an, wenn er Ihre Dezimaleingabe in das Zielformat verengt, und das Fehler-Panel zeigt die resultierende vorzeichenbehaftete Differenz exakt.
- ULP: der Rasterabstand der Gleitkommazahlen
- Darstellbare Gleitkommazahlen sind nicht gleichmäßig verteilt — der Abstand zwischen Nachbarn (eine Einheit an der letzten Stelle) verdoppelt sich an jeder Zweierpotenz. Nahe 1.0 beträgt das ULP eines Double 2⁻⁵² ≈ 2,22 × 10⁻¹⁶; nahe 2⁵³ erreicht das ULP 1.0 und ganze Zahlen beginnen auszufallen. Das Nachbarn-Panel gibt das aktuelle ULP exakt aus — die ehrliche Antwort auf die Frage „Wie präzise ist meine Zahl an dieser Stelle?“.
Best Practices für Gleitkommazahlen
- Gleitkommazahlen nie mit == vergleichen
- Nach beliebiger Arithmetik können zwei mathematisch gleiche Ausdrücke ein ULP auseinanderliegen. Vergleichen Sie gegen eine zu Ihren Größenordnungen passende Toleranz — oder zählen Sie ULPs zwischen den Bitmustern, die Sie mit diesem Tool direkt inspizieren können.
- Geldbeträge nicht in binären Floats speichern
- Kein Zweierpotenz-Raster enthält 0.10 exakt, deshalb akkumulieren Währungsbeträge in Floats sichtbare Fehler. Verwenden Sie ganzzahlige Cent-Beträge oder einen Dezimaltyp; das Panel mit dem exakt gespeicherten Wert liefert hier den ständigen Beweis dafür.
- Das 16-Bit-Format nach Wertebereich wählen, nicht aus Gewohnheit
- Können Ihre Werte 65504 überschreiten — Verluste, Gradienten, Physik-Spitzen —, läuft FP16 zu Infinity über, wo bfloat16 unbeeindruckt weiterrechnet. Ist alles in ein schmales Band normalisiert, liefern die zusätzlichen Mantissenbits von FP16 sichtbar bessere Präzision.
- Die Doppelrundungsfalle beim Verengen beachten
- Die Umwandlung Dezimal → Double → Half kann in seltenen Grenzfällen ein ULP neben der direkten Umwandlung Dezimal → Half landen. Dieses Tool rundet Ihre Dezimaleingabe in einem einzigen Schritt in das Zielformat — was Sie sehen, ist die ehrliche IEEE-754-Antwort.
- Oberhalb von 2⁵³ mit brechenden Ganzzahlen rechnen
- Ein Double speichert jede Ganzzahl bis 2⁵³ exakt und beginnt dann auszulassen — 2⁵³ + 1 ist nicht darstellbar. Wer IDs oder Zähler in dieser Größenordnung verarbeitet, sollte 64-Bit-Ganzzahlen oder Strings verwenden und verdächtige Werte hier auf Bit-Ebene prüfen.
FAQ zum IEEE 754 Konverter
Warum ist 0.1 + 0.2 nicht gleich 0.3?
Was ist IEEE 754?
Was ist der Unterschied zwischen FP16 und bfloat16?
Was sind subnormale (denormalisierte) Zahlen?
Sollte ich float oder double verwenden?
Wie rechne ich einen Float von Hand in Hex um?
Werden meine Daten hochgeladen, wenn ich diesen Konverter verwende?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Zahlensystem-Konverter — Binär, Hex, Dezimal & Oktal
Konvertierungswerkzeuge
Zahlen zwischen Binär, Hexadezimal, Dezimal, Oktal und beliebigen Basen (2–36) sofort konvertieren. Kostenlos, privat, ohne Anmeldung — alles läuft in Ihrem Browser.
Farbkonverter — HEX, RGB, HSL & OKLCH
Konvertierungswerkzeuge
Konvertieren Sie HEX zu RGB, HSL, OKLCH, OKLAB und CMYK direkt im Browser — jedes Format mit einem Klick kopieren. Kostenlos, ohne Anmeldung, Ihre Farben verlassen die Seite nie.
HEX-zu-CMYK-Konverter
Konvertierungswerkzeuge
Konvertieren Sie HEX-Farben direkt im Browser in CMYK. Naive sRGB-basierte Näherung für Druckvorschauen. Kostenlos, ohne Anmeldung, Ihre Farben bleiben lokal.
HEX-zu-HSL-Konverter
Konvertierungswerkzeuge
Konvertieren Sie jede HEX-Farbe direkt im Browser in HSL — 3-stellig, 6-stellig und 8-stellig mit Alpha werden unterstützt. Kostenlos, sofort, ohne Anmeldung, Ihre Farben verlassen die Seite nie.
HEX-zu-OKLCH-Konverter
Konvertierungswerkzeuge
Konvertieren Sie HEX in OKLCH für Tailwind-v4-Design-Tokens. Perzeptuell uniforme Live-Ausgabe mit Display-P3-Farbraum-Warnungen. Kostenlos, ausschließlich im Browser.
HEX-zu-RGB-Konverter
Konvertierungswerkzeuge
Konvertieren Sie jeden HEX-Farbcode direkt im Browser in RGB — 3-stellige, 6-stellige und 8-stellige HEX-Werte mit Alpha werden unterstützt. Kostenlos, sofort, ohne Anmeldung, Ihre Farben verlassen die Seite nie.