Informatik · Klasse 10–12 · aktualisiert
Festkommazahlen: binär darstellen und rechnen
Du rechnest Bitmuster mit festem Komma in Dezimalzahlen um, bestimmst Wertebereich und Auflösung und rechnest mit richtiger Skalierung.
0 von 13 Aufgaben gelöst
Kurz gesagt
Eine Festkommazahl hat eine feste Anzahl von Stellen vor und nach dem Komma; gespeichert wird nur das Bitmuster. Die Nachkommastellen bestimmen die Auflösung. Manche Dezimalbrüche wie 0,7 werden nur angenähert, und beim Multiplizieren musst du die Kommaposition korrigieren.
Bei Festkommazahlen ist die Position des Kommas fest vorgegeben. Darum muss der Computer das Komma nicht mitspeichern, es genügt das Bitmuster. Außerdem fällt im Vergleich zur Rechnung mit Gleitkommazahlen, einer anderen Darstellung von Zahlen mit Komma, Rechenaufwand weg. Das hat aber Folgen für Genauigkeit und Größe der Zahlen, und die lernst du hier.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Eine Festkommazahl besteht aus einer festen Anzahl von Ziffern vor und nach dem Komma. Die Position des Kommas ist fest vorgegeben, daher der Name. Weil die Zahl der Vorkommastellen feststeht, wird das Komma nicht mitgespeichert. Gespeichert wird nur das Bitmuster.
Jede Stelle hat einen Stellenwert, eine Zweierpotenz. Vor dem Komma sind das von rechts 1, 2, 4, 8. Hinter dem Komma sind es 0,5, dann 0,25, dann 0,125, dann 0,0625. Um ein Muster umzurechnen, setzt du das Komma gedanklich an die feste Stelle, multiplizierst jede Ziffer mit ihrem Stellenwert und addierst. Ein Beispiel für diese Regel: Die Zahl 1,375 wird im Dualsystem durch die Ziffernfolge 1,011 dargestellt.
Dasselbe Muster kann je nach Kommaposition etwas anderes bedeuten. Mit n gibst du an, wie viele Vorkommastellen es gibt. Das Muster 10 bedeutet bei n = 2 dezimal 2, bei n = 1 dezimal 1,0 und bei n = 0 dezimal 0,50. Das Muster 11 bedeutet bei n = 2 dezimal 3, bei n = 1 dezimal 1,5 und bei n = 0 dezimal 0,75.
Im Format mit 8 Bit, 4 Vorkommastellen und 4 Nachkommastellen ist 1 das Muster 00010000 und 10 das Muster 10100000. Für den Weg von Dezimal zu binär ziehst du die größte passende Zweierpotenz ab, dann die nächste, und so weiter. Eine 1 steht dort, wo du abgezogen hast, sonst steht eine 0.
Definition
Festkommazahl
Eine Festkommazahl hat eine feste Anzahl von Ziffern vor und nach dem Komma. Die Position des Kommas ist fest vorgegeben und wird nicht mitgespeichert.
| Stelle | Potenz | Stellenwert |
|---|---|---|
| 4. vor dem Komma | 2³ | 8 |
| 3. vor dem Komma | 2² | 4 |
| 2. vor dem Komma | 2¹ | 2 |
| 1. vor dem Komma | 2⁰ | 1 |
| 1. nach dem Komma | 2⁻¹ | 0,5 |
| 2. nach dem Komma | 2⁻² | 0,25 |
| 3. nach dem Komma | 2⁻³ | 0,125 |
| 4. nach dem Komma | 2⁻⁴ | 0,0625 |
Beispiel: Das Muster 00001010 umrechnen
- 1Format: 8 Bit, 4 Vorkommastellen, 4 Nachkommastellen
- 2Komma in die Mitte setzen: 0000,1010
- 3Vorkomma: 0000 ergibt 0
- 4Nachkomma: 1010 ergibt 0,5 + 0,125 = 0,625
- 5Also bedeutet 00001010 dezimal 0,625
Teste dich
Hier geht es um vorzeichenlose Formate. Das sind Formate ohne Vorzeichen, also nur mit Zahlen ab 0 aufwärts.
Der Wertebereich reicht von der kleinsten bis zur größten Zahl, die das Format darstellen kann. Die Auflösung ist der Wert des kleinsten Musters, das nicht null ist.
Im 8-Bit-Format mit 4 Vor- und 4 Nachkommastellen steht 00000000 für 0, 00000001 für 0,0625 und 11111111 für 15,9375. Es lassen sich also nur Zahlen von 0 bis 15,9375 darstellen, bei einer Auflösung von 0,0625. Die Zahl 16 ist größer als das Muster 11111111 und liegt außerhalb. Die Zahl 0,06 ist kleiner als das kleinste Muster ungleich null, 00000001 (0,0625).
Bei 2 Bit mit n = 1 sind die Werte 0; 0,5; 1 und 1,5. Die Tabelle zeigt alle drei 2-Bit-Formate. Aus diesen Beispielen kannst du schließen: Bei m Nachkommastellen ist die Auflösung 2⁻ᵐ. Bei k Bit ist der größte Wert die Auflösung mal (2ᵏ − 1). Das ist eine Schlussfolgerung aus den Beispielen. Rechne sie bei 8 Bit mit m = 4 nach: (2⁸ − 1) · 0,0625 = 255 · 0,0625 = 15,9375.
Bei gleicher Bitlänge ist der Wertebereich einer Festkommazahl kleiner als der einer Gleitkommazahl. Gleitkommazahlen sind eine andere Darstellung von Zahlen mit Komma. Der kleine Wertebereich ist der entscheidende Nachteil der Festkommazahlen.
Definition
Auflösung
Die Auflösung ist der Wert des kleinsten Musters ungleich null. Im 8-Bit-Format mit 4 Nachkommastellen beträgt sie 0,0625.
| Format (2 Bit) | Auflösung | Größter Wert |
|---|---|---|
| n = 2 (zwei Vorkommastellen) | 1 | 3 |
| n = 1 (eine Vorkommastelle) | 0,5 | 1,5 |
| n = 0 (keine Vorkommastelle) | 0,25 | 0,75 |
Merke: Schlussfolgerung aus den Beispielen: Bei gleicher Bitlänge machen mehr Nachkommastellen die Auflösung feiner. Mehr Vorkommastellen vergrößern den Wertebereich nach oben.
Teste dich
Beim Umwandeln dezimaler Zahlen in eine binäre Festkommadarstellung entstehen Rundungsfehler, so wie auch bei Gleitkommazahlen.
Die Zahl 7 lässt sich im 8-Bit-Format mit 4 Vor- und 4 Nachkommastellen exakt als 01110000 darstellen. Die Zahl 0,7 dagegen nur näherungsweise als 00001011. Dieses Muster steht für 0,5 + 0,125 + 0,0625 = 0,6875. Auch 7,7 wird nur näherungsweise durch 01111011 dargestellt.
Der Grund: Die Stellenwerte hinter dem Komma sind Zweierpotenzen wie 0,5 oder 0,25. Die Zahl 0,7 lässt sich auch bei noch so vielen Nachkommastellen nicht als Summe von Zweierpotenzen schreiben. Auch 0,1 ist so ein Fall. Im Dualsystem ergibt sie 0,0001100110011… Die Ziffern wiederholen sich, es gibt also eine Periode. Mit nur 4 Nachkommastellen kann man so eine Zahl nie exakt treffen. Wie genau dabei gerundet wird, musst du hier nicht wissen.
Um diese Probleme zu umgehen, kann bei Bedarf eine dezimale Festkommadarstellung eingesetzt werden. Dabei werden die Werte zum Beispiel mit dem Faktor 100 multipliziert, um zwei Nachkommastellen zu erhalten. Das ist bei Geldbeträgen sinnvoll. Mit Gleitkommazahlen kann es durch Rundungsfehler vorkommen, dass ein Restbetrag weit unter der kleinsten Währungseinheit übrig bleibt. In den meisten Programmiersprachen und Datenbanken gibt es darum einen eigenen Datentyp für solche Beträge.
Beispiel: 7 und 0,7 im 8-Bit-Format
- 17 = 01110000 (exakt)
- 20,7 ≈ 00001011 (nur angenähert, das Muster bedeutet 0,6875)
- 37,7 ≈ 01111011 (nur angenähert)
Merke: Eine Zahl ist nur dann exakt darstellbar, wenn sie eine Summe der vorhandenen Zweierpotenzen ist. Sonst bleibt ein Näherungswert.
Teste dich
Festkommazahlen werden mit ihren Bitmustern wie ganze Zahlen verarbeitet. Darum kann jeder digitale Prozessor, der mit ganzen Zahlen rechnet, auch Festkomma-Arithmetik durchführen. Du musst nur auf die Position des Kommas achten.
Bei Addition und Subtraktion muss die Kommaposition aller Operanden gleich sein. Operanden sind die Zahlen, mit denen du rechnest. Ist die Position verschieden, gleichst du sie durch Schiebeoperationen an. Eine Schiebeoperation verschiebt das Bitmuster um einige Stellen nach links oder rechts. Das Ergebnis hat dann dieselbe Kommaposition wie die Operanden. Beim binären Addieren schreibst du an einer Stelle keine „Zwei“, sondern eine Null und gibst einen Übertrag an die nächste Stelle weiter.
Dezimales Beispiel mit zwei Nachkommastellen: Du multiplizierst die Werte mit dem Faktor 100. Dann wird 6,3 zu 630 und 2,1 zu 210. Es gilt 630 + 210 = 840, und 840 bedeutet 8,4. Ebenso gilt 630 − 210 = 420, und 420 bedeutet 4,2.
Bei der Multiplikation ist die Zahl der Nachkommastellen des Ergebnisses die Summe der Nachkommastellen aller Operanden. Es gilt 630 · 210 = 132300. Das ist keine Festkommazahl wie die Faktoren, eine Korrektur ist nötig. Hier teilst du durch 100: 132300 / 100 = 1323, und 1323 bedeutet 13,23.
Binäres Beispiel mit 8 Bit und 4 Nachkommastellen: 3,5 wird zu 0011,1000 und 2,5 zu 0010,1000. Erwartet wird dezimal 3,5 · 2,5 = 8,75. Das rohe Produkt der beiden Muster ist 0000,1000,1100,0000. Liest du davon nur 1100,0000 ab, bedeutet das 12 und nicht 8,75. Die Kommaposition des rohen Produkts ist falsch, darum ist die Schiebeoperation notwendig. Nach der Korrektur ist das Ergebnis 1000,1100 = 8,75, wie erwartet.
Eine Division durch 2ⁿ entspricht einem Verschieben des Bitmusters um n Stellen nach rechts, eine Multiplikation mit 2ⁿ einem Verschieben nach links, bei gleichbleibender Kommaposition. Bei binären Festkommazahlen können die zur Umrechnung und Korrektur nötigen Multiplikationen und Divisionen darum durch schnelle Schiebeoperationen ersetzt werden.
Beispiel: Addition mit dem Faktor 100
- 16,3 wird zu 630 und 2,1 wird zu 210
- 2630 + 210 = 840
- 3840 bedeutet 8,4
Merke: Beim Addieren und Subtrahieren muss die Kommaposition gleich sein, und das Ergebnis behält sie. Beim Multiplizieren addieren sich die Nachkommastellen, danach prüfst du die Kommaposition und korrigierst sie.
Teste dich
Alles auf einen Blick
Festkommazahl
Festkomma
Die Zahl hat eine feste Anzahl von Stellen vor und nach dem Komma, das Komma wird nicht mitgespeichert
Umrechnen
Jede Stelle hat einen Stellenwert; hinter dem Komma sind es 0,5; 0,25; 0,125; 0,0625
Auflösung und Wertebereich
Im 8-Bit-Format mit 4 Vor- und 4 Nachkommastellen reichen die Zahlen von 0 bis 15,9375, die Auflösung ist 0,0625
Annäherung
Zahlen wie 0,7 sind keine Summe von Zweierpotenzen und werden nur angenähert
Addieren
Die Kommaposition der Operanden muss gleich sein, das Ergebnis behält sie
Multiplizieren
Die Nachkommastellen addieren sich, danach wird die Kommaposition korrigiert
Musteraufgabe · Schritt für Schritt
Muster 01101000 und die Zahl 2,75 umrechnen (ausgedachtes Beispiel)
- 1Format: 8 Bit, 4 Vorkommastellen, 4 Nachkommastellen, also 0110,1000
- 2Vorkomma: 0110 ergibt 4 + 2 = 6
- 3Nachkomma: 1000 ergibt 0,5
- 4Ergebnis: 01101000 bedeutet 6,5
- 5Umgekehrt 2,75: Der Vorkommateil 2 ist 0010
- 6Nachkomma: 0,75 − 0,5 = 0,25 und 0,25 − 0,25 = 0, also 1100
- 7Muster: 0010,1100 = 00101100. Probe: 2 + 0,5 + 0,25 = 2,75
Fehler finden
Prüfe die Rechnung 3,5 · 2,5 im 8-Bit-Format In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 5Das rohe Produkt hat die falsche Kommaposition. Richtig: 1100,0000 bedeutet 12 und nicht 8,75, darum ist eine Schiebeoperation nötig.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Im 8-Bit-Format mit 4 Vor- und 4 Nachkommastellen ist die Auflösung . In diesem Format ist die Zahl 7 darstellbar. Bei einer Multiplikation ist die Zahl der Nachkommastellen des Ergebnisses die der Nachkommastellen aller Operanden.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback