6. Exercise - auf Matthias

Werbung
e
D
TI II
S
Distributed
embedded
Systems
Sommersemester 2008
Prof. Dr. Mesut Güneş
6. Exercise
Out
26.05.08
Discussion
6.06.08
Contact by questions
Christian Grümme, Sven Ketelsen, Georgy Sklyarenko, Marie Hoffmann
{gruemme/ketelsen/sklyar/mhoffman}@mi.fu-berlin.de
Problem 1: IEEE-Gleitkommazahlen (2+2+4+4=12)
a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im
IEEE-754-Format mit 64 Bit darstellen?
b) Wenn Zahlen vorkommen, deren Betrag kleiner ist als die kleinste positive normalisierte
Gleitkommazahl, die aber dennoch nicht Null sind, so spricht man von einem Underflow.
In diesem Fall rechnet die IEEE-Arithmetik so lange wie möglich mit nicht normalisierten
Zahlen weiter. Nicht normalisierte Zahlen sind gekennzeichnet durch den Exponenten -126
bzw. -1022 und eine Mantisse ungleich Null. Welchen Bereich der positiven Zahlen kann
man so zusätzlich darstellen, wenn man Gleitkommazahlen im IEEE-754-Format mit 64 Bit
betrachtet?
c) Seien z1 = 6.25 und z2 = 2.0625 + 2−21 + 2−22 im Dezimalsystem gegeben. Transformieren
Sie diese Zahlen ins IEEE-754-Format mit 32 Bit (inkl. Normalisierung) und berechnen Sie
dann die Summe z1 + z2 .
d) Schätzen Sie den relativen Fehler bei der Darstellung einer Zahl x ∈ R durch eine Gleitkommazahl im IEEE-754-Format mit 32 Bit ab. Unterscheiden Sie dabei zwischen dem Bereich
zwischen der kleinsten und der größten darstellbaren Zahl und dem Bereich außerhalb.
Problem 2: Gleitkomma-Arithmetik (4+4=8)
Bei den folgenden Rechenaufgaben soll nicht gerundet werden; überflüssige Stellen sollen einfach
ignoriert (abgeschnitten) werden.
Führen Sie die folgenden Rechnungen im Binärformat aus, und geben Sie das Ergebnis wieder
im IEEE-Format für 32-Bit-Gleitkommazahlen an.
a) Addition
von 00111110010000000000000000000000
und 00111110101000000000000000000000.
b) Multiplikationvon 00111110110000000000000000000000
und 10111111001000000000000000000000.
Problem 3: Carry-lookahead-Addierer (2+2+2=6)
a) Lösen Sie die rekursive Berechnung von ü4 dem Skript entsprechend in Und- und OderVerknüpfungen von gi und pi mit i 6 4 auf.
b) Berechnen Sie gi und pi mit i 6 4 für a4..1 = 0101 und b4..1 = 1101.
c) Berechnen Sie die ersten vier Ziffern si mit i 6 4 der Summe von a und b aus b) entsprechend
der Carry-lookahead-Addierer-Methode.
1
e
D
S
Distributed
embedded
Systems
TI II
Sommersemester 2008
Prof. Dr. Mesut Güneş
Problem 4: MMIX – Unterprogramme (5+5=10)
Informieren Sie sich über die Erstellung von Unterprogrammen in MMIX.
a) Implementieren Sie ein Unterprogramm für die Berechnung der Fakultätsfunktion n! = 1 · 2 ·
. . . · n und geben Sie ein Hauptprogramm an, vom dem das Unterprogramm aufgerufen wird.
b) Die rekursive Berechnung des Binomialkoeffizienten n
k kann mittels folgender Funktion
durchgeführt werden:
function binom (n,k : integer) : integer;
begin
if (k=0 OR k=n) then binom := 1
else if k=1 then binom := n
else binom := binom(n-1,k) + binom(n-1,k-1)
end;
Schreiben Sie ein vollständiges MMIX Assemblerprogramm,
welches mittels eines rekursiven
Unterprogramms den Binomialkoeffizient n
berechnet.
k
2
Herunterladen