Über den Rechner
Mit diesem Rechner lassen sich 2 binäre IEEE-754-Gleitkommazahlen multiplizieren. Es kann ausgewählt werden, ob es sich bei den Eingabezahlen um binäre Gleitkommazahlen in binärer oder hexadezimaler Darstellung handelt oder ob es sich um Dezimalzahlen handelt. Wenn es sich um Dezimalzahlen handelt, dann werden sie vor dem Multiplizieren in binäre Gleitkommazahlen umgewandelt.
Wichtige Werte:
Datentyp | Größe | Exponent | Mantisse | Bias |
---|---|---|---|---|
binary16 | 16 Bits | 5 Bits | 10 Bits | 15 |
binary32 | 32 Bits | 8 Bits | 23 Bits | 127 |
binary64 | 64 Bits | 11 Bits | 52 Bits | 1023 |
binary128 | 128 Bits | 15 Bits | 112 Bits | 16383 |
Multiplikation binärer Gleitkommazahlen
2 Zahlen, die sich im binären IEEE-754-Gleitkommaformat befinden, können mit den folgenden Schritten multipliziert werden:
- Exponenten in Dezimalzahlen umwandeln
- Mantissen erweitern
- Vorzeichen ermitteln
- Exponenten addieren und Bias abziehen
- Mantissen multiplizieren
- Normalisieren
- Runden
- Exponent in Binärzahl umwandeln
- Gleitkommazahl zusammensetzen
Um das Vorgehen zu verdeutlichen, sollen die folgenden 2 binären Gleitkommazahlen multipliziert werden:
und
1. Exponenten in Dezimalzahlen umwandeln:
Im ersten Schritt werden von beiden Zahlen die Exponenten in Dezimalzahlen umgewandelt. Wenn man möchte, kann man noch den Bias abziehen. Dies ist aber nicht nötig und im Beispiel wird dies auch nicht gemacht.
2. Mantissen erweitern:
Vor die Mantissen wird jeweils ein "1," geschrieben.
In Kombination mit den Exponenten und den Vorzeichenbits sind die Zahlen somit:
3. Vorzeichen ermitteln
Wenn die Vorzeichenbits der beiden Faktoren gleich sind, dann ist das Produkt positiv und das Vorzeichenbit somit 0. Ansonsten ist das Produkt negativ und das Vorzeichenbit somit 1.
Die Vorzeichenbits unterscheiden sich. Somit ist das Vorzeichenbit der Lösung 1.
4. Exponenten addieren und Bias abziehen
Als Nächstes werden die beiden Exponenten addiert. Wenn in Schritt 1 der Bias aus den Exponenten nicht herausgerechnet wurde, dann muss der Bias von der Summe abgezogen werden. Wenn der Bias schon in Schritt 1 herausgerechnet wurde, dann wird er in diesem Schritt nicht von der Summe abgezogen.
133 + 130 − Bias | = | 133 + 130 − 127 |
= | 263 − 127 | |
= | 136 |
5. Mantissen multiplizieren
Dann werden die beiden Mantissen multipliziert. Das Multiplizieren von Binärzahlen funktioniert im Prinzip wie das Multiplizieren von Dezimalzahlen.
Jede Ziffer der zweiten Zahl wird mit der ersten Zahl multipliziert. Die Produkte sind entweder 0 oder die erste Zahl selber. Die Produkte werden so untereinander aufgeschrieben, dass dahinter so viele Stellen frei gelassen werden, wie sich Stellen hinter der dazugehörigen Ziffer des zweiten Faktors befinden. Wenn man mit der letzten Ziffer des zweiten Faktors beginnt, dann wird somit jedes Produkt um eine Stelle weiter nach links verschoben als das vorherige Produkt.
Danach werden von rechts beginnend für jede Spalte die Werte zusammenaddiert. Wenn die Summe einer Spalte 0 oder 1 ist, dann wird sie unter den Lösungsstrich geschrieben. Ansonsten wird die Summe in eine Binärzahl umgewandelt, die letzte Ziffer wird unter den Lösungsstrich geschrieben und die Ziffern, die vor der letzten Ziffer stehen, werden zu einer Dezimalzahl umgewandelt und in die Übertragszeile eine Spalte weiter links geschrieben. Wenn zum Beispiel die Summe einer Spalte 9 ist, dann ist das als Binärzahl 10012. Die letzte 1 wird unter den Lösungsstrich geschrieben und die 1002 wird in eine Dezimalzahl umgewandelt (das ergibt 4) und in die Übertragszeile eine Spalte weiter links geschrieben. Das Komma der Lösung wird so gesetzt, dass die Lösung so viele Nachkommastellen hat wie die beiden Faktoren zusammen.
Multiplizieren der Ziffern der zweiten Zahl mit der ersten Zahl:
Spalten zusammenaddieren:
Die erste Zahl hat 8 Nachkommastellen und die zweite 5. Deshalb hat die Lösung 13 Nachkommastellen.
6. Normalisieren
Wenn das Komma nach der Multiplikation nicht mehr hinter der ersten 1 ist, dann muss es dorthin verschoben werden. Durch das Verschieben des Kommas ändert sich auch der Exponent. Wenn das Komma nach links verschoben wird, dann wird der Exponent um die Anzahl der Stellen erhöht, die das Komma verschoben wird und wenn das Komma nach rechts verschoben wird, dann wird er um die Anzahl an Stellen verringert, die das Komma nach rechts verschoben wird.
Das Komma muss um eine Stelle nach links verschoben werden. Deshalb muss der Exponent um 1 erhöht werden.
−1,101011100010112 ∙ 2137 − Bias
7. Runden
Wenn die Zahl mehr Nachkommastellen hat als in der binären Gleitkommazahl gespeichert werden können, dann muss sie gerundet werden. Meistens wird zur nächstgelegenen darstellbaren Zahl gerundet. Dafür wird das Bit hinter dem niederwertigsten Bit (das letzte Bit, welches in der Mantisse der Gleitkommazahl abgespeichert werden kann) angesehen. Wenn direkt hinter dem niederwertigsten Bit eine 1 steht und darauf nicht an mindestens einer weiteren Stelle eine 1 folgt, dann liegt die Zahl genau in der Mitte zwischen 2 darstellbaren Zahlen. In diesem Fall wird so gerundet, dass hinterher das niederwertigste Bit 0 ist. Wenn im Bit hinter dem niederwertigsten Bit eine 1 steht und darauf an mindestens einer weiteren Stelle eine 1 folgt, dann ist die betragsmäßig größere Zahl die nächstgelegene darstellbare Zahl. Wenn auf das niederwertigste Bit eine 0 folgt, dann ist die betragsmäßig kleinere Zahl die nächstgelegene darstellbare Zahl.
Beim Beispiel hat die Zahl 14 Nachkommastellen. Die Mantisse einer binären Gleitkommazahl mit 32 Bits hat Platz für 23 Bits. Deshalb muss die Zahl nicht gerundet werden.
8. Exponent in Binärzahl umwandeln
Der Exponent wird in eine Binärzahl umgewandelt. Wenn in Schritt 1 der Bias abgezogen wurde, dann muss er vorher wieder hinzuaddiert werden.
137 ist in eine Binärzahl umgewandelt: 100010012
9. Gleitkommazahl zusammensetzen
Zum Schluss werden alle Komponenten zu einer binären Gleitkommazahl im IEEE-754-Standard zusammengesetzt.
Das Vorzeichenbit wurde in Schritt 3 ermittelt.
In den Exponententeil werden die in Schritt 8 berechneten Exponentenbits geschrieben. Wenn die Exponentenbits nicht ausreichen, um den Exponententeil vollständig auszufüllen, dann wird der Exponententeil vorne mit Nullen aufgefüllt.
In den Mantissenteil der Gleitkommazahl werden die Nachkommastellen der normalisierten und gerundeten Zahl geschrieben. Wenn danach noch Bits im Mantissenteil frei sind, dann wird dieser hinten mit Nullen aufgefüllt.