3.2 Gleitkommaarithmetik

Addition

Gegeben seien zwei Zahlen in wissenschaftlicher Notation, z.B.

x = 9.725*107 ; y = 3.016*106

Die Summe ergibt sich durch folgende Schritte:

s = x + y = 9.725*107 + 3.016*106

= 9.725*107 + 0.3016*107 Angleichung der Exponenten durch Denormalisierung

= (9.725 + 0.3016)*107 Anwendung des Distributivgesetzes

= 10.0266*107 Addition der Mantissen

= 1.00266*108 Normalisierung

Bei einer Realisierung mit endlich vielen Stellen gehen bei der Denormalisierung und evtl. bei der Normalisierung die niederwertigsten Stellen der Mantisse verloren. Geringfügig verbessern kann man dies durch Rundung. Mit Rundung und 4-stelliger dezimaler Mantisse ergibt sich für obiges Beispiel

s = x + y = 9.725*107 + 0.3016*107 Angleichung der Exponenten durch Denormalisierung

= (9.725 + 0.302)*107 Anwendung des Distributivgesetzes

= 10.027*107 Addition der Mantissen

= 1.003*108 Normalisierung

Die Differenz zu dem ohne Abschneiden von Stellen berechneten Resultat ist 0.00034 . Wegen der Denormalisierung und der Normalisierung ist die Addition von Gleitkommazahlen im allgemeinen nicht informationstreu. Der relative Fehler der Summe zweier positiver Zahlen liegt jedoch in der selben Größenordnung wie der Fehler der Darstellung der Operanden ohnehin.

Subtraktion

Die Subtraktion erfolgt prinzipiell genau wie die Addition. Es ist nur die Frage noch offen, wie die Subtraktion der denormalisierten Mantissen erfolgen soll. Entweder es wird hierfür ein eigenes Werk in Hardware realisiert oder die Subtraktion erfolgt durch Addition des Komplements. Dazu ist im letzteren Fall zunächst das Komplement zu bilden und nach der Addition im Falle eines negativen Ergebnisses wiederum das Komplement zu nehmen. Das Gleitkommaformat benutzt das Komplement nicht zur Speicherung der Mantisse, weil das Komplement einer verschobenen Mantisse nicht gleich der Verschiebung des Komplements ist.

Multiplikation

Die Multiplikation von Gleitkommazahlen ist etwas einfacher als die Addition oder Subtraktion - wenn man vom tatsächlichen Hardwareaufwand des Festkomma-Multiplizierers für die Multiplikation der Mantissen absieht.

Nehmen wir wieder die beiden Zahlen x und y aus den vorigen Beispielen, so ergibt sich

s = x * y = 9.725*107 * 3.016*107

= 9.725 * 3.016 *107 * 106 Anwendung von Kommutativ- und Assoziativgesetz

= 29.330600*1013 Multiplikation der Mantissen, Addition der Exponenten

= 2.9330600*1014 Normalisierung

Auch in diesem Fall ist das Resultat ungenau, wenn man die Mantisse bei der Normalisierung im letzten Schritt wieder auf eine vorgegebene Länge beschränkt.

Die Addition der Exponenten ist geringfügig aufwändiger als eine Ganzzahladdition, weil ja der Exponent e repräsentiert wird durch r = e + a . Man muss deshalb rechnen: rs = rx + ry - a = ex + a + ey + a - a = es + a .

Division

Der Multiplikation entsprechend erfolgt die Division von Zahlen in Gleitkommaformat durch Festkommadivision der Mantissen und Subtraktion der Exponenten.