Zum Inhalt springenSkip to content
Zahlenkodierungen

Festkomma

Reelle Zahlen mit fester Anzahl Nachkommastellen. Beschränkter absoluter Rundungsfehler.

Eingaben oben setzen und Berechnen drücken, dann wird die Schritt-für-Schritt-Rechnung angezeigt.

Funktionsweise und Bereich

Die Festkomma-Codierung cFK,k,n codiert eine nichtnegative reelle Zahl r in n Bit, davon n − k Bit für die Vorkommastellen und k Bit für die Nachkommastellen. Sie multipliziert r mit 2k, rundet das Ergebnis zur nächsten ganzen Zahl und codiert diese binär: cFK,k,n(r) := c2,n(rd(r · 2k)). Der Wertebereich reicht von 0 bis 2n-k − 2-(k+1), bei n = 8 und k = 4 also etwa 0 bis 15,9375 mit Schrittweite 2-4 = 0,0625. Decodiert wird, indem die Zahl binär decodiert und anschließend durch 2k geteilt wird. Eine Zahl ist genau dann exakt darstellbar, wenn r · 2k eine ganze Zahl ist; benachbarte exakt darstellbare Zahlen haben konstanten Abstand 2-k. Der absolute Rundungsfehler ist durch 1 / 2k+1 beschränkt und damit konstant für alle r, der relative Fehler ist durch 1 / (|r| · 2k+1) beschränkt und wächst für kleine r beliebig an. Addition und Subtraktion lassen sich direkt auf den Codes ausführen, weil die gemeinsame Kommaverschiebung erhalten bleibt.

Rundungsfehler

Bei der Festkomma-Codierung ist der absolute Rundungsfehler durch eine Konstante begrenzt, der relative Fehler kann für kleine Zahlen aber beliebig groß werden.

Maximaler absoluter Fehler
2−(k+1) = 2−5 = 0.03125
Maximaler relativer Fehler
1 / (|r| · 2k+1) — wächst für kleine |r| unbegrenzt

Klicke auf "Berechnen", um den tatsächlichen Fehler des aktuellen Inputs zu sehen.

Wann verwenden?

Die Festkomma-Codierung lohnt sich, wenn alle in der Anwendung auftretenden Zahlen ähnliche Größenordnung haben, etwa bei Audiosamples (typisch −1 bis +1), bei Sensor-Messwerten auf Mikrocontrollern oder bei deterministischer Spielelogik, in der ein Multiplayer-Sync ohne Float-Diskrepanzen laufen soll. Wenn dagegen sehr kleine und sehr große Werte gemischt vorkommen, ist die Gleitkomma-Codierung die bessere Wahl.