Gleitkommazahl Rechner
- So benutzt du den Gleitkommazahl-Rechner
- Was ist eine IEEE754-Gleitkommazahl?
- Wie werden reelle Zahlen mit Gleitkommadarstellung gespeichert?
- Das einfach genaue 32-Bit-Gleitkomma-Format
- Das doppelt genaue 64-Bit-Gleitkomma-Format
- Wie wandle ich eine Zahl in eine Gleitkommazahl um?
- Gleitkommazahl Genauigkeit
- FAQ
Der Gleitkommazahl-Rechner soll dir helfen, den IEEE754-Standard für das floating-point-Format zu verstehen. Er funktioniert als Umrechner für Gleitkommazahlen — er wandelt 32-Bit-Gleitkommazahlen und 64-Bit-Gleitkommazahlen von binären Darstellungen in reale Dezimalzahlen um und umgekehrt.
💡 Möchtest du Binärzahlen in das Dezimalsystem umwandeln? Dann hilft dir unser Binärzahlen Umrechner 🇺🇸 weiter!
So benutzt du den Gleitkommazahl-Rechner
Bevor wir uns mit den Bits und Bytes der Zahlenformate float32
und float64
beschäftigen, wollen wir lernen, wie der Gleitkommazahl-Rechner funktioniert. Befolge einfach diese einfachen Schritte:
-
Wenn du die Binärkodierung einer Gleitkommazahl in die von ihr repräsentierte Dezimalzahl umwandeln möchtest, wähle oben im Rechner die Option
Gleitkomma in Zahl
. Dann:-
Wähle die verwendete Genauigkeit. Damit legst du fest, wie deine binäre Darstellung interpretiert wird.
-
Gib die binären Ziffern der Gleitkommazahl ein. Du kannst das Vorzeichen, die Potenz und den Dezimalteil getrennt eingeben oder die gesamte Bitfolge auf einmal — wähle dies im Dropdown-Menü
Biteingabemethode
. -
Der Wert, der in deinem Float gespeichert ist, wird unten im Rechner angezeigt.
-
-
Wenn du einen Wert in seine Gleitkommadarstellung umwandeln möchtest, wähle oben im Rechner
Zahl in Gleitkomma
. Dann:-
Gib deine Zahl in das Feld darunter ein.
-
Die IEEE754-Gleitkommadarstellung in Binär- und Hexadezimaldarstellung von einfach- und doppeltgenauen Gleitkommazahlen wird unten angezeigt.
-
Der Gleitkommazahl-Rechner zeigt dir auch den wirklich gespeicherten Wert an, da das Gleitkomma-Format einen Präzisionsverlust aufweist. Der Fehler, der durch den Verlust der Genauigkeit entsteht, wird ebenfalls angezeigt.
-
Was ist eine IEEE754-Gleitkommazahl?
In der Informatik ist eine Gleitkommazahl (Englisch: floating-point) ein Datenformat, das verwendet wird, um Dezimalzahlen in einer digitalen Maschine zu speichern. Eine Gleitkommazahl oder Fließkommazahl wird durch eine Reihe von Bits (1 und 0) dargestellt. Computer führen mathematische Operationen direkt mit diesen Bits durch, anstatt die Berechnungen wie ein Mensch durchzuführen. Wenn ein Mensch die Gleitkommazahl lesen möchte, müssen die Bits zuerst durch eine komplexe Formel in das Dezimalsystem umgewandelt werden.
Der IEEE754-Standard (1985 vom Institute of Electrical and Electronics Engineers eingeführt) standardisiert das Floating-Point-Format und legt fest, wie das Format für mathematische und andere Aufgaben verwendet werden kann. Es wurde von vielen Hardware- und Softwareentwicklern übernommen und ist der de facto Standard für die Darstellung von Gleitkommazahlen in Computern. Wenn jemand im Zusammenhang mit Computern von „Gleitkommazahlen“ spricht, meint er in der Regel das Datenformat IEEE754.
💡 Die Computerleistung (d. h. die Geschwindigkeit) kann durch die Anzahl der Gleitkommaoperationen gemessen werden, die er pro Sekunde ausführen kann. Diese Kennzahl wird FLOPS genannt und ist in den Bereichen des wissenschaftlichen Rechnens entscheidend.
Das bekannteste IEEE754-Gleitkommaformat (Einzelpräzision oder „32-Bit“) wird in fast allen modernen Computeranwendungen verwendet. Das Format ist sehr flexibel: mit float32
können Zahlen von 1,4∙10-45 bis zu 3,4∙1038 (sowohl positive als auch negative) kodiert werden.
Neben der einfachen Genauigkeit kodiert der IEEE754-Standard auch doppelte Genauigkeit („64-Bit“ oder float64
), die Zahlen von 5∙10-324 bis 1,7∙10308 speichern kann. Zu den weniger gebräuchlichen IEEE754-Formaten gehören:
- Halbpräzision („16-Bit“);
- Vierfache Genauigkeit („128-Bit“); und
- Achtfache-Genauigkeit („256-Bit“).
💡 Obwohl IEEE754 nur diese Formate definiert, ist technisch gesehen jede beliebige Genauigkeit möglich — viele ältere Computer verwendeten 24-Bit Gleitkommazahlen!
Eine Gleitkommazahl ist jedoch nicht nur eine Zahl, die in das binäre Zahlensystem umgewandelt wird — sie ist viel komplizierter als das! Hier erfährst du, wie der IEEE754 Floating-Point-Standard funktioniert.
Wie werden reelle Zahlen mit Gleitkommadarstellung gespeichert?
Jede binäre Gleitkommadarstellung besteht aus drei Bitsegmenten: Vorzeichen, Potenz und Dezimalteil.
- Das Vorzeichen (S) steht für positiv oder negativ;
- Der Exponent (E) erhöht 2 mit einer Potenz, um die Zahl zu skalieren; und
- Der Dezimalteil (
F
) bestimmt die genauen Ziffern der Zahl.
Die Länge der Segmente und die genaue Formel, die auf S
, E
und F
angewendet wird, um die Zahl zu erzeugen, hängen von der Genauigkeit des Formats ab.
Bei der Speicherung im Speicher werden , und aneinandergereiht, um die vollständige binäre Darstellung der Gleitkommazahl zu erhalten. Im Computerspeicher könnte das folgendermaßen aussehen:
Mit diesen Bits arbeitet der Computer, wenn er arithmetische und andere Operationen durchführt. Der Computer sieht eine Zahl nie als Dezimalziffer — er sieht und arbeitet nur mit diesen Bits.
💡 Die Wahl der Genauigkeit hängt davon ab, was die Anwendung erfordert. Mehr Präzision bedeutet mehr Bits und höhere Genauigkeit, aber auch größeren Speicherplatzbedarf und längere Rechenzeit.
Schauen wir uns die beiden am häufigsten verwendeten Gleitkommaformate an: float32
und float64
.
Das einfach genaue 32-Bit-Gleitkomma-Format
float32
ist das gebräuchlichste der IEEE754-Formate. Wie der Begriff „32-Bit-Gleitkommazahl“ schon sagt, ist die zugrunde liegende Binärdarstellung 32 Bits lang. Diese sind wie folgt unterteilt:
- 1 Bit für das Vorzeichen ();
- 8 Bits für den Exponenten (); und
- 23 Bits für den Dezimalteil ().
Im Speicher sehen die Bits wie folgt aus:
Wir können sie als binäre Zeichenfolge umschreiben:
Der reale Wert, den dieser 32-Bit-Gleitkommazahl speichert, kann wie folgt berechnet werden:
wobei:
- — wird als Exponentenverzerrung bezeichnet und ist für das einstellige Format typisch;
- — das muss so interpretiert werden, als ob es zur Basis 2 oder binär wäre; und
- — die binären Bits bis werden als Dezimalteil von verwendet, um eine binäre Dezimalzahl zu bilden. In unserem Binär in Dezimal Umrechner 🇺🇸 findest du Hilfe dazu.
Wir können die Formel besser umschreiben, indem wir , und verwenden:
wobei
- ;
- ; und
- .
Damit Gleitkommaformate wirklich kleine Zahlen mit hoher Genauigkeit speichern können, aktivieren und eine eigene Formel. Für float32
lautet diese Formel:
Zahlen, die mit dieser Formel erzeugt werden, nennt man „subnormale Zahlen“, während „normale Zahlen“** mit der vorherigen Formel erzeugt werden.
Es gibt andere Sonderfälle, die durch spezifische Werte für und verschlüsselt werden:
Wert | ||
---|---|---|
Jedes | ||
bedeutet „keine Zahl“ (not a number), was zurückgegeben wird, wenn du durch null teilst oder unmögliche Mathematik mit Unendlichkeit durchführst. Für die Fälle und bestimmt das Vorzeichenbit, ob die Zahl positiv oder negativ ist. Und ja, die negative Null gibt es wirklich!
Ein Beispiel
Wir wandeln die binäre Gleitkommadarstellung 01000001110111100000000000000000
in die reale Zahl, die sie darstellt, um.
-
Zuerst unterteilen wir sie in , und :
-
-
Da , verwenden wir die normale Zahlenformel:
-
(also ist die Zahl positiv!)
-
-
-
-
Kombiniere die drei Multiplikatoren:
Möchtest du es selbst sehen? Probiere diesen Wert in unserem Gleitkomma-Rechner aus, um ihn in Aktion zu sehen!
Beachte, dass bei der direkten Umwandlung von Binär- in Dezimalzahlen nicht , sondern ist. Ein ziemlicher Unterschied, findest du nicht auch?
💡 Die Formel für Gleitkommazahlen kann als eine Form der wissenschaftlichen Notation angesehen werden, bei der der exponentielle Aspekt die Basis 2 verwendet. Wir können das obige Beispiel als umschreiben. Weitere Informationen findest du in unserem Wissenschaftliche Notation Rechner.
Das doppelt genaue 64-Bit-Gleitkomma-Format
Die innere Funktionsweise des Datentyps float64
ist weitgehend identisch mit der von float32
. Die einzigen Unterschiede sind:
- Die Längen der Exponenten- und Dezimalsegmente der Binärdarstellung — bei 64-Bit-Gleitkommazahlen nimmt 11 Bits und 52 Bits in Anspruch.
- Die Verzerrung des Exponenten — in 64-Bit-Gleitkommazahlen beträgt sie 1023 (in 32-Bit-Gleitkommazahlen 127).
Die Formeln für die Rekonstruktion von 64-Bit-Normal- und Subnormal-Gleitkommazahlen lauten daher wie folgt:
und
Durch die zusätzlichen Bits für den Exponenten und die Nachkommastellen im Vergleich zu float32
kann float64
viel größere Zahlen und mit viel höherer Genauigkeit speichern.
💡 Alle IEEE754-Gleitkommaformate folgen diesem Muster, wobei die größten Unterschiede die Verzerrung und die Länge der Segmente sind.
Wie wandle ich eine Zahl in eine Gleitkommazahl um?
Um eine Dezimalzahl in eine Gleitkommadarstellung umzuwandeln, befolge diese Schritte:
- Wandle die gesamte Zahl in die binäre Schreibweise um und normiere sie dann, d. h. schreibe sie in wissenschaftlicher Notation zur Basis 2 auf.
- Kürze die Dezimalzahl nach dem Komma auf die erlaubte Dezimallänge.
- Extrahiere das Vorzeichen, den Exponenten und die Dezimalteile.
Genauere Anweisungen findest du im IEEE754-Standard.
Ein Beispiel
Wir wandeln zurück in seine Gleitkommadarstellung um.
-
Unser ganzzahliger Teil ist , der im Binärformat ist. Unser Dezimalteil ist . Wandeln wir ihn in eine binäre Dezimalzahl um:
Also , und dann . Um sie zu normalisieren, schreiben wir sie um als:
-
- Die Ziffern nach dem Komma haben bereits eine geeignete Länge — für
float32
wären wir auf 23 Bits beschränkt, aber wir haben nur fünf.
Aus der normalisierten Umwandlung können wir erschließen, dass:
- , da die Zahl positiv ist;
- (wir fügen hinzu, weil sein muss); und
- (Nullen werden auf der rechten Seite aufgefüllt, weil es sich um Nachkommastellen und nicht um eine ganze Zahl handelt).
Unsere Gleitkomma-Darstellung ist also .
Du kannst dieses Ergebnis mit unserem Gleitkommazahl-Rechner überprüfen!
Gleitkommazahl Genauigkeit
Gleitkommazahlen können nicht alle möglichen Zahlen mit vollständiger Genauigkeit darstellen. Das macht intuitiv Sinn für ausreichend große Zahlen und für Zahlen mit einer unendlichen Anzahl von Dezimalstellen, wie Pi () und die Eulersche Zahl (). Aber wusstest du, dass Computer einen so einfachen Wert wie nicht mit 100%-iger Genauigkeit speichern können? Gehen wir dieser Behauptung auf den Grund!
Wenn du einen Computer bittest, als float32
zu speichern, wird er diesen binären String speichern:
00111101110011001100110011001101
.
Wenn wir das mit den oben gelernten Gleitkomma-Formeln zurück in Dezimalzahlen umrechnen, erhalten wir folgendes Ergebnis:
Das ist ein kleines bisschen mehr als ! Der Fehler (wie weit der gespeicherte Gleitkommawert von dem „richtigen” Wert von entfernt ist) beträgt .
Lass uns versuchen, diesen Fehler zu korrigieren und die kleinstmögliche Änderung vorzunehmen. Unsere gespeicherte Zahl ist ein bisschen zu groß, also ändern wir das letzte Bit von zu , um unseren Float ein bisschen kleiner zu machen. Wir konvertieren jetzt:
00111101110011001100110011001100
Und wir haben unser Ziel von wieder verfehlt! Diesmal ist der Fehler ein bisschen größer (). Die erste binäre Zeichenkette, die auf 1
endete, war sogar noch korrekter als diese!
Du denkst vielleicht: „Was wäre, wenn wir mehr Bits verwenden würden?“ Wenn wir das Gleiche mit dem Format float64
machen würden, hätten wir das gleiche Problem, wenn auch weniger gravierend. , umgerechnet in eine 64-Bit-Gleitkommazahl und zurück in Dezimalzahlen, ist und der Fehler hier ist . Das ist die höhere Genauigkeit von float64
in Aktion, aber der Fehler ist immer noch nicht — die Umwandlung ist immer noch nicht verlustfrei.
Das ist leider der Nachteil des Gleitkommaformats — es ist nicht zu 100% genau. Kleine Informationen gehen verloren, und wenn sie nicht berücksichtigt werden, können sie verheerende Folgen haben. Die einzigen Zahlen, die perfekt und ohne Verluste als Gleitkommazahl gespeichert werden können, sind Potenzen von 2, die durch ganze Zahlen skaliert werden, weil das Format Zahlen so speichert. Alle anderen Zahlen werden einfach nur angenähert, wenn sie als Gleitkommazahl gespeichert werden. Aber es ist immer noch das Beste, was wir haben!
💡 Einige Operationen sind widerstandsfähiger gegen Genauigkeitsverlust. Probiere unseren Konditionszahl Rechner aus, um zu sehen, wie stark sich ein Genauigkeitsverlust auf Matrixoperationen auswirkt.
FAQ
Warum verwenden wir Gleitkommazahlen?
Der IEEE754-Standard für Gleitkommaformate ermöglicht eine effiziente Speicherung und Verarbeitung von Zahlen in Computern.
-
Aus der Hardware-Perspektive können dank der Spezifikationen des IEEE754-Standards viele Vereinfachungen von Floating-Point-Operationen vorgenommen werden, um die Arithmetik deutlich zu beschleunigen.
-
Für Software sind Gleitkommazahlen sehr präzise und verlieren in der Regel ein paar Millionstel (wenn nicht weniger) pro Operation, was hochpräzise wissenschaftliche und technische Anwendungen ermöglicht.
Wie lautet die Gleitkommadarstellung von 12,25?
Die Gleitkommadarstellung von 12,25 ist 01000001010001000000000000000000
. Das Vorzeichen ist 0, der Exponent ist 100000102 = 130, und der Dezimalteil ist 100010...0. Umgerechnet in Dezimalzahlen erhalten wir:
(-1)0 ∙ 2(130-127) ∙ (1,10001)2
= 1 ∙ 23 ∙ 1,53125
= 12,25
S = 02 = 0
E = 000000002 = 0
F = 000000000000000000000002 = 0
000000000000000000000000000000002
00000000H
E=0
and F=0
is a special case for ±0. Because S=0
, the final result is +0.