FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Dr. rer. nat. Georg Acher Einführung in die Technische Informatik (ETI) Wintersemester 2008/2009 Tutorübung 2 - Lösungsvorschläge 3-7.11.2008 1a) Die Stellen mit negativen Indices stellen Bruchteile von 1 dar. z.B. mit B = 2: 2−1 = 0.5, 2−2 = 0.25, 2−3 = 0.125, ... 1b) Vorkomma 0...255, Nachkomma: 0...(255/256) → 0 bis 255.99609375 1c) Vorkomma: 7 Bit (0-127), Nachkomma 1/0.005=200, also 8 Bit. Die Nachkommastufen sind dann 1/256=0.00390625. 1d) Addition und Subtraktion können an der konkatenierten Vorkomma/Nachkommazahl durchgeführt werden, der Übertrag in die Vorkommastelle geschieht “automatisch”. 1e) Wenn man Vor- und Nachkommaanteil konkateniert und multipliziert, ist das Multiplikationsergebnis um die Nachkomma-Stellen nach links verschoben. Dies muss nach der Multiplikation wieder korrigiert werden. Beispiel mit 8+8 Vorkomma/Nachkommastellen: a= 1.5 = (0000 0001 . 1000 0000 = 384) b= 3.25 = (0000 0011 . 0100 0000 = 832) 384*832=319488= 0000 0100 1110 0000 0000 0000 Verschiebung um n=8 Stellen nach rechts (=Division durch 256) 0000 0100 . 1110 0000 = 4.875 D.h. Festkommamultiplikation geht mit normaler Ganzzahlmultiplikation, wenn man danach eine Korrektur durch Rechtsverschiebung bzw. Teilen durch die passende Zweierpotenz durchführt. 2a) Absolut kleinster Wert: m = 0 → W = 0 Absolut grösster Wert: m/D = 9.9, e = 18 → W = 9.9 ∗ 1018−9 = 9.9 ∗ 109 Wertebereich insgesamt: −9.9 ∗ 109 bis +9.9 ∗ 109 Kleinste Schrittweite: m/D = 0.1, e = 0 → W = 0.1 ∗ 100−9 = 10−10 Grösste Schrittweite m/D = 0.1, e = 18 → W = 0.1 ∗ 1018−9 = 108 1 2b) Absolut kleinster Wert: m = 0 → W = 0 Absolut grösster Wert: (m/D) = 16777215/8388608, e = 254 → W = 1.999999880790710449 ∗ 2254−127 = 1.999999880790710449 ∗ 1.7014118346 ∗ 1038 = 3.4282346638 ∗ 1038 Kleinste Schrittweite: m = 1, e = 1 → W = (1/8388608) ∗ 21−127 = 1.19209289551 ∗ 10−7 ∗ 1.17549435082 ∗ 10−38 = 1.40129846433 ∗ 10−45 2c) Die Normalisierung bringt den effektiven Wert von m/D immer in den Bereich zwischen 1 und 2. Es entsteht keine Lücke, da der Bereich von 0 (genauer 0.5) bis 1 über einen um eins verringerten Exponenten erreicht werden kann. Wenn das höchste Bit immer 1 sein muss, kann man es auch gleich weglassen. Single Precision nach IEEE754 speichert normalisierte Mantissen daher nur mit 23Bit. Für denormalisierte Mantissen wird e = 0 benutzt. 2d) Zur Addition zweier Fliesskommazahlen müssen zunächst die Exponenten beider Zahlen angepasst werden. Das geht, in dem die absolut kleinere Zahl unter Beibehaltung des Wert denormalisiert wird. D.h. die Mantisse wird um n Stellen nach rechts geschoben und der Exponent um n erhöht. Dabei wird n so gewählt, dass der neue Exponent dem der grössren Zahl entspricht. Anschliessend werden beide Mantissen addiert und das Ergebnis normalisiert. Bei Addition kann durch die Anpassung des Exponenten der Mantissen-Anteil in der Genauigkeit stark reduziert oder gar ausgelöscht werden. Die Multiplikation zweier Fliesskommazahlen multipliziert die Mantissen und addiert die Exponenten, eine Anpassung der Exponenten ist nicht notwendig. Anschliessend wird das Ergebnis noch normalisiert. 2e) Festkomma Einfache Grundrechenarten Konstante Auflösung Kein Rundungsfehler Geringe Dynamik Kein Universalformat Fliesskomma Aufwendige Addition Dynamische Auflösung Auslöschung möglich Grosser Wertebereich Relativ universell verwendbar 2