# Festkommadarstellung visualisieren: k Vorkomma-Bits

> Festkomma mit n Bit und k Nachkommastellen interaktiv: Multiplikation mit einer Zweierpotenz, Rundung, Hornerverfahren, Rundungsfehler und Wertebereich.

Adresse: https://marckimmel.de/informatik/zahlenkodierungen/festkomma
English version: https://marckimmel.de/en/informatik/zahlenkodierungen/festkomma.md

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

Die Festkomma-Codierung c_(FK,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 2^k, rundet das Ergebnis zur nächsten ganzen Zahl und codiert diese binär: c_(FK,k,n)(r) := c_(2,n)(rd(r · 2^k)). Der Wertebereich reicht von 0 bis 2^(n-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 2^k geteilt wird. Eine Zahl ist genau dann exakt darstellbar, wenn r · 2^k eine ganze Zahl ist; benachbarte exakt darstellbare Zahlen haben konstanten Abstand 2^(-k). Der absolute Rundungsfehler ist durch 1 / 2^(k+1) beschränkt und damit konstant für alle r, der relative Fehler ist durch 1 / (|r| · 2^(k+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.

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.

## Weiter

- [Zahlenkodierungen](https://marckimmel.de/informatik/zahlenkodierungen.md)
