|
Eine Festkommazahl ist eine Zahl, die aus einer festen Anzahl von Ziffern besteht. Die Position des Dezimalkommas ist dabei fix
vorgegeben. Die Menge aller Festkommazahlen einer vorgegebenen Länge k ist deshalb sehr
gering. Der Grundgedanke hinter Festkommazahlen ist, dass man übliche Zahlen (beispielsweise aus ) versucht,
zumindest näherungsweise in einem begrenzten Speicher (beispielsweise einer elektronischen Rechenanlage beziehungsweise Computer)
darzustellen, um damit rechnen zu können. Üblicherweise sind per Definition die ersten Stellen Vorkommastellen und die restlichen m = k - n Nachkommastellen.
Beispiele
Alle binären Festkommazahlen der Länge k
= 2 mit Vorkommastellen:
Da die Anzahl der Vorkommastellen ja bereits per Definition fest liegt, ist es unnötig, das sonst übliche Komma zu schreiben
beziehungsweise zu speichern.
Einige dezimale Festkommazahlen der Länge k = 1 mit n = k Vorkommastellen:
Probleme
Bei der Darstellung eine reellen Zahl z kann es einige Probleme geben. Im folgenden habe
die Festkommazahl (angelehnt an die Darstellung in einem Rechner) eine Länge von k = 8 und
n = m = 4 Vor- und Nachkommastellen. Der Ziffernvorrat sei {0,1} - also eine binäre Festkommazahl der Länge eines Bytes mit gleich vielen Vor- und Nachkommastellen. Der
tiefgestellte Index bezeichnet die Darstellung der Zahl: XR für eine reelle
Zahl in üblicher Dezimaldarstellung und XF für eine derartige
Festkommazahl.
- 1R = 00010000F
- 10R = 10100000F
- 0,5R = 00001000F
- 0,625R = 00001010F
- 0,0625R = 00000001F
- 15,9375R = 11111111F
- 16R > 11111111F
- 0,06R < 00000001F

Wie man sieht, können also mit 8 Bits und 4 Vor- und Nachkommastellen nur Festkommazahlen
zwischen 0,0625R und 15,9375R
dargestellt werden. Dieser geringe Darstellungsbereich ist auch der entscheidende Nachteil gegenüber Gleitkommazahlen.
Weiterhin entstehen wie auch bei Gleitkommazahlen Rundungsfehler bei der Umwandlung der dezimalen, reellen Zahlen in eine binäre
Festkommadarstellung. 7R = 01110000F kann im Gegensatz zu
exakt dargestellt werden.
0,7R kann allerdings bei noch so vielen Nachkommastellen nicht als Summe von
Zweierpotenzen dargestellt werden.
|