Informatik

Festkommazahlen: binär darstellen und rechnen

Festkommazahlen: binär darstellen und rechnen
Festkommazahlen: binär darstellen und rechnen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Bei einer Festkommazahl liegt die Position des Kommas von Anfang an fest. Gespeichert wird deshalb nur ein ganzzahliges Bitmuster. Das vereinbarte Format bestimmt, welchen Zahlenwert dieses Muster darstellt.

Auf dieser Seite geht es um positive, vorzeichenlose Binärzahlen. Du lernst, ein Festkommaformat auszuwerten, seinen Wertebereich zu bestimmen und bei Rechnungen die Skalierung richtig zu behandeln.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Wie wird aus einem Bitmuster eine Kommazahl?

Stell dir ein 8-Bit-Muster vor, bei dem vier Bits vor und vier Bits nach dem Komma liegen. Das Komma wird nicht gespeichert, sondern beim Lesen gedanklich eingesetzt:

00111000 wird zu 0011,1000.

Definition

Festkommazahl

Eine Festkommazahl ist eine Zahlendarstellung mit fest vereinbarter Kommaposition. Die Bits links vom Komma stehen für nichtnegative Zweierpotenzen, die Bits rechts davon für negative Zweierpotenzen.

Die Nachkommastellen besitzen der Reihe nach die Werte

$$2^{-1}=0{,}5,\quad 2^{-2}=0{,}25,\quad 2^{-3}=0{,}125,\quad 2^{-4}=0{,}0625.$$

Ein Format mit vier Nachkommabits wird auf dieser Seite kurz Q4 genannt. Andere Q-Konventionen geben zusätzlich die Zahl der Ganzzahl- oder Vorzeichenbits an. Deshalb solltest du bei einer Q-Bezeichnung immer prüfen, wie sie definiert wurde.

Beispiel

Werte 0011,1000 aus:

  • Der Vorkommateil 0011 hat den Wert $3$.
  • Im Nachkommanteil 1000 ist nur das Bit mit dem Stellenwert $2^{-1}=0{,}5$ gesetzt.
  • Zusammen ergibt sich $3+0{,}5=3{,}5$.

Daher gilt im vereinbarten Q4-Format:

00111000 $\rightarrow 3{,}5$.

Teste dich
Frage 1 von 1LeichtWelchen Wert hat 00001010 in Q4?
Lösung: $0{,}625$ — In 1010 sind die Stellenwerte $0{,}5$ und $0{,}125$ gesetzt. Ihre Summe ist $0{,}625$.
Wie rechnest du zwischen Binär- und Dezimalwert um?

Mit vier Nachkommabits besitzt das Format den Skalierungsfaktor $2^4=16$. Der gespeicherte ganzzahlige Bitwert ist also das 16-Fache der dargestellten Zahl.

Merke

Bei $m$ Nachkommabits gilt:

  • dargestellter Wert = gespeicherter Ganzzahlwert geteilt durch $2^m$;
  • gespeicherter Ganzzahlwert = darzustellender Wert mal $2^m$.
Beispiel

Wandle 10101100 aus Q4 in eine Dezimalzahl um.

  1. Als vorzeichenlose Ganzzahl hat 10101100 den Wert $172$.
  2. Wegen der vier Nachkommabits teilst du durch $16$.

$$172:16=10{,}75$$

Also stellt das Muster den Wert $10{,}75$ dar.

Für die Gegenrichtung multiplizierst du zuerst mit dem Skalierungsfaktor.

Beispiel

Codiere $6{,}375$ in einem 8-Bit-Q4-Format.

$$6{,}375\cdot16=102$$

Die vorzeichenlose Binärdarstellung von $102$ ist 01100110. Daher gilt:

$6{,}375\rightarrow$ 01100110.

Die Multiplikation liefert eine ganze Zahl. Der Wert ist somit in diesem Format exakt darstellbar.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Bei vier Nachkommabits beträgt der Skalierungsfaktor . Zum Auswerten eines gespeicherten Musters wird sein Ganzzahlwert durch geteilt. Zum Codieren eines Dezimalwerts wird er mit multipliziert.

Lösungen: Lücke 1: 16; Lücke 2: 16; Lücke 3: 16. Vier Nachkommabits bedeuten den Faktor $2^4=16$. Ob du multiplizierst oder dividierst, hängt von der Umrechnungsrichtung ab.
Wie hängen Auflösung und Wertebereich zusammen?

Die Auflösung ist der Abstand zwischen zwei benachbarten darstellbaren Werten. Bei $m$ Nachkommabits beträgt sie $2^{-m}$.

Für Q4 gilt:

$$2^{-4}=\frac{1}{16}=0{,}0625.$$

Mit 8 Bits gibt es die gespeicherten Ganzzahlwerte von $0$ bis $255$. Nach der Division durch $16$ reicht der Wertebereich daher von $0$ bis

$$\frac{255}{16}=15{,}9375.$$

Beispiel

Das größte Muster 11111111 bedeutet in Q4:

$$15+0{,}5+0{,}25+0{,}125+0{,}0625=15{,}9375.$$

Der Wert $16$ liegt bereits außerhalb des Bereichs. Der positive Wert $0{,}06$ ist kleiner als die erste positive Rasterstufe $0{,}0625$.

Bei gleichbleibender Gesamtzahl an Bits entsteht ein Zielkonflikt:

  • Mehr Nachkommabits verkleinern die Schrittweite und erhöhen damit die Auflösung.
  • Gleichzeitig bleiben weniger Bits für große Werte übrig; der Wertebereich wird kleiner.
Teste dich
Frage 1 von 1MittelEin 8-Bit-Format erhält statt zwei nun vier Nachkommabits. Was ändert sich?
Lösung: Die Auflösung wird feiner, aber der größte darstellbare Wert wird kleiner. — Die feste Wortlänge zwingt zu einer Aufteilung: Mehr Bits für kleine Schritte bedeuten weniger Bits für große Stellenwerte.
Warum sind manche Dezimalwerte nur Näherungen?

Ein binärer Bruch mit endlich vielen Stellen ist eine Summe negativer Zweierpotenzen. Ein vollständig gekürzter Bruch ist deshalb genau dann endlich binär darstellbar, wenn sein Nenner eine Zweierpotenz ist. Zusätzlich muss das gewählte Format genügend Nachkommabits besitzen.

  • $3/8$ ist exakt darstellbar, denn der Nenner $8=2^3$ ist eine Zweierpotenz.
  • $1/10$ ist nicht endlich binär darstellbar, denn der Nenner $10$ enthält außer dem Faktor $2$ auch den Faktor $5$.
Beispiel

Der Wert $7{,}7$ liegt nicht auf dem Q4-Raster. Das Muster 01111011 besitzt den Ganzzahlwert $123$ und stellt

$$123:16=7{,}6875$$

dar. Die Abweichung zu $7{,}7$ beträgt $0{,}0125$. Der gespeicherte Wert ist also eine Näherung.

Eine Näherung innerhalb des Wertebereichs heißt Quantisierung. Liegt ein Wert über dem größten darstellbaren Wert, reicht bloßes Runden dagegen nicht aus: Das Format hat dann einen Überlauf beziehungsweise einen nicht darstellbaren Eingabewert.

Teste dich
Frage 1 von 1MittelWelche Zahl ist mit drei Nachkommabits exakt darstellbar?
Lösung: $0{,}375$ — $0{,}375=3/8=0{,}25+0{,}125$. Der vollständig gekürzte Nenner ist $2^3$, und drei Nachkommabits reichen aus.
Wie rechnest du mit Festkommazahlen?

Für Rechnungen behandelst du die gespeicherten Muster wie Ganzzahlen. Du musst aber verfolgen, welche Skalierung diese Ganzzahlen besitzen.

Addition und Subtraktion

Beide Operanden müssen dieselbe Kommaposition haben. Dann kannst du ihre gespeicherten Ganzzahlwerte direkt addieren oder subtrahieren. Das Ergebnis behält die gemeinsame Skalierung.

Beispiel

In Q4 gilt:

  • $3{,}75\rightarrow 60$;
  • $4{,}3125\rightarrow 69$.

Die gespeicherten Werte ergeben $60+69=129$. Zurückgerechnet erhältst du

$$129:16=8{,}0625.$$

Damit ist $3{,}75+4{,}3125=8{,}0625$.

Multiplikation

Bei der Multiplikation werden auch die Skalierungsfaktoren multipliziert. Zwei Q4-Faktoren erzeugen deshalb zunächst ein Rohprodukt mit acht Nachkommabits. Für ein Q4-Ergebnis musst du anschließend durch $16$ teilen beziehungsweise das Rohprodukt um vier Bits nach rechts verschieben.

Beispiel

Berechne $3{,}5\cdot2{,}5$ in Q4.

  1. Codieren: $3{,}5\cdot16=56$ und $2{,}5\cdot16=40$.
  2. Ganzzahlig multiplizieren: $56\cdot40=2240$.
  3. Auf Q4 zurückskalieren: $2240:16=140$.
  4. Auswerten: $140:16=8{,}75$.

Das Q4-Ergebnis ist 10001100 und stellt $8{,}75$ dar.

Die Rechnung benötigt vorübergehend mehr Bits: Das Rohprodukt von 00111000 und 00101000 lautet 0000100011000000. Würdest du ohne Reskalierung nur die unteren acht Bits als Q4 lesen, erhieltest du eine falsche Kommaposition.

Merke

Bei Addition und Subtraktion gleichst du zuerst die Kommapositionen an. Bei der Multiplikation addieren sich die Zahlen der Nachkommabits; danach skalierst du auf das gewünschte Ergebnisformat zurück.

Teste dich
Frage 1 von 1MittelZwei Q4-Werte werden multipliziert. Wie ist das unveränderte Rohprodukt zunächst zu interpretieren?
Lösung: Als Wert mit acht Nachkommabits — Bei einer Multiplikation addiert sich die Zahl der Nachkommabits: $4+4=8$. Für ein Q4-Ergebnis wird anschließend um vier Bits zurückskaliert.
Wann ist Festkomma eine passende Wahl?

Festkomma eignet sich besonders, wenn der benötigte Wertebereich bekannt ist und überall dieselbe absolute Schrittweite gebraucht wird. Beispiele sind begrenzte Messbereiche, eingebettete Systeme und dezimal skalierte Geldbeträge.

Gleitkomma kann sehr unterschiedliche Größenordnungen darstellen. Seine absolute Schrittweite ist jedoch nicht über den gesamten Wertebereich konstant. Festkomma ist außerdem nicht auf jeder modernen Hardware automatisch schneller; die Wahl hängt von Zahlenbereich, benötigter Auflösung und Rechenumgebung ab.

Gut zu wissen

Für Geldbeträge werden häufig dezimale Festkommawerte verwendet: Ein Betrag mit zwei Nachkommastellen kann etwa als ganze Zahl von Cent gespeichert werden. Dadurch bleibt das Dezimalraster erhalten, statt einen Wert wie $0{,}1$ nur binär anzunähern.

Prüfe vor der Wahl eines Formats:

  1. Welche kleinsten und größten Werte kommen vor?
  2. Welche Schrittweite wird benötigt?
  3. Müssen bestimmte Dezimalwerte exakt bleiben?
  4. Können Zwischenergebnisse, besonders Produkte, mehr Bits benötigen?
Teste dich
Frage 1 von 1SchwerEin Sensor misst nur Werte von $0$ bis knapp $16$ und benötigt überall Schritte von $0{,}0625$. Welche Aussage passt?
Lösung: Ein vorzeichenloses 8-Bit-Q4-Format deckt Bereich und Schrittweite ab. — Q4 liefert die Schrittweite $1/16=0{,}0625$. Mit acht vorzeichenlosen Bits endet der Bereich bei $255/16=15{,}9375$ und damit knapp unter $16$.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Festkommazahl
    • feste Kommaposition und ganzzahlig gespeichertes Bitmuster
    • Auflösung durch die Zahl der Nachkommabits
    • Wertebereich durch Gesamtbreite und Bitaufteilung
    • Umrechnung über den Skalierungsfaktor $2^m$
    • exakte Werte nur auf dem binären Raster
    • Addition bei gleicher Skalierung
    • Multiplikation mit anschließendem Reskalieren
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWas beschreibt die Auflösung eines Festkommaformats?
Lösung: Den Abstand zwischen zwei benachbarten darstellbaren Werten — Bei $m$ Nachkommabits beträgt die Auflösung $2^{-m}$.
Frage 2 von 3MittelDas Bitmuster 00011000 wird als Q4 gelesen. Welchen Wert stellt es dar?
Lösung: $1{,}5$ — 00011000 hat den Ganzzahlwert $24$. Mit vier Nachkommabits gilt $24:16=1{,}5$.
Frage 3 von 3SchwerDu brauchst bei 8 Bits eine feinere Auflösung, aber der bisherige größte Wert muss weiterhin darstellbar bleiben. Warum kann das scheitern?
Lösung: Mehr Nachkommabits verkleinern bei fester Bitzahl den Bereich für große Werte. — Feste Wortlänge bedeutet einen Zielkonflikt: Eine kleinere Schrittweite wird mit einem kleineren Wertebereich bezahlt. Außerdem bleiben Brüche mit ungeeignetem Nenner binär nur näherungsweise darstellbar.

Du kannst dein Ergebnis zusätzlich selbst prüfen: Nenne bei jeder Rechnung zuerst das Format, verfolge den Skalierungsfaktor und kontrolliere am Ende, ob Wert und Einheit im erlaubten Bereich liegen.

Passend dazu