Tobias Krähling email: <Tobias.Kraehling@SemiByte.de> Homepage: <www.semibyte.de> 11..7 Version: 1.1 Zusammenfassung Die Übungsaufgaben stammen aus den Übungsaufgaben und Anwesenheitsaufgaben zur Vorlesung»Einführung in die Informatik«von Herrn Prof. Dr. Wassermann an der Ruhr-Universität Bochum im Wintersemester 6/7. In diesem Dokument sind sowohl die Übungsaufgaben wie auch Lösungsvorschläge enthalten. Inhaltsverzeichnis 1. Übungsaufgaben........................................................... Frage 1................................................................... Frage................................................................... Frage 3................................................................... Frage 4................................................................... Frage 5................................................................... Frage 6................................................................... Frage 7................................................................... 3 Frage 8................................................................... 3 Frage 9................................................................... 3 Frage 1.................................................................. 3 Frage 11.................................................................. 4 Frage 1.................................................................. 4. Lösungsvorschläge zu den Fragen............................................. 5 1
1. Übungsaufgaben Frage 1 Wandeln Sie die Dezimalzahl 711 in ihre Darstellung bezüglich der Basen, 3, 4, 8, 1 und 16 um. Frage Wandeln Sie die Dezimalzahl 654 in ihre Darstellung bezüglich der Basen, 7, 8 und 16 um. Frage 3 Führen Sie folgende Zahlenbasisumwandlungen nach der effizientesten Methode aus. a) Wandeln Sie die Zahl 111 3 in die Dezimalnotation um. b) Wandeln Sie die Hexadezimalzahl ABCD in eine Binärzahl und eine Dezimalzahl um. c) Wandeln Sie die Hexadezimalzahl CAFFEE in eine Oktalzahl um. d) Wandeln Sie die Zahl A137 11 in die Dezimalnotation um. e) Wandeln Sie die Hexadezimalzahl E1D1 in eine Binär- und in eine Dezimalzahl um. f) Wandeln Sie die hexadezimalzahl ABCDEF in eine Oktalzahl um. Frage 4 Eine k-stellige Zahl a = a k... a, dargestellt bezüglich einer Basis n, ist in ihre l-stellige Darstellung b l... b bezüglich einer anderen Basis m umzuwandeln. Die Berechnung soll in der Zielbasis m ausgeführt werden. Für die Lösung sollen die beiden folgenden Methoden verwendet werden: direktes Ausrechnen des Ausdrucks k i= a i n i in der Zielbasis m; effizientere Methode durch Klammerung des vorhergehenden Ausdrucks. a) Wieviele Rechenoperationen sind für diese Umwandlung maximal erforderlich nach der ersten und nach der zweiten Methode (Unterschieden werden sollen Multiplikationsund Additionsoperationen)? b) Multiplikationen können im Binärsystem durch eine kleine Anzahl von Additionen berechnet werden. Wieviele Additionen muß ein Rechner, der kein Multiplikationsbefehl besitzt, maximal für die Umwandlung nach den o. g. Methoden ausführen? Begründen Sie Ihre Antworten. Zur Bestimmung der Antwort kann die Formel 1 + + 3 + + k = verwendet werden. Frage 5 k(k + 1) a) Wandeln Sie die Dezimalzahlen 5, 7 und 13 in ihre Binärdarstellung um und berechnen Sie im Binärsystem 13 + 5 7. b) Wandeln Sie Dezimalzahl 11 in ihre Binärdarstellung um und dividieren Sie im Binärsystem das Ergebnis von Teil a) durch diese Zahl. Bestimmen Sie nur den ganzzahligen Quotienten und den Rest.
Frage 6 Die ersten beiden Fibonacci-Zahlen sind F = und F 1 = 1. Danach ist jede weitere Fibonacci- Zahl als die Zumme ihrer beiden unmittelbaren Vorgänger definiert, d. h. ab n = gilt F n := F n 1 + F n a) Berechnen Sie die ersten zehn Fibonacci-Zahlem im Binärsystem, d. h. die letzte zu berechnende Zahl ist F 9. b) Berechnen Sie im Binärsystem den Quotienten und den Rest der Division von der letzten in Teil a) bestimmten Fibonacci-Zahl F 9 durch Fünf. Frage 7 Berechnen Sie die ersten zen Quadratzahlen im Binärsystem. Die Zählung beginnt mit 1! Frage 8 Die babylonische Methode zur Berechnung von Quadratwurzeln ist leicht auf Computern zu implementieren und geht wie folgt (sie wurde tatsächlich von den Babyloniern erfunden): Sei a die (positive) Zahl, deren Quadratwurzel zu berechnen ist. Wir konstruieren eine Folge {s n } n N von Schätzungen für a, die schnell gegen den wahren Wert konvergiert. Dazu nehmen wir s := 1 und setzen die Folge durch die rekursive Regel fort. s n+1 := 1 ( s n + a s n ) Berechnen Sie nach dieser Methode, aber unter Beachtung der folgenden Besonderheiten: Rechnen Sie im Binärsystem Die während der Berechnung auftretenden Binärbrüche dürfen Sie, ohne Rundung, nach der achten Stelle hinter dem Komma einfach abschneiden. Rechnen Sie so viele Schritte, bis Sie die Quadratwurzel, richtig gerundet, auf 6 binärstellen hinter dem Komma genau bestimmt haben. Frage 9 a) Stellen Sie für b = (Binärsystem) und b = 8 (Oktalsystem) die Dezimalzahlen x = 13, y = 11 und z = 6 im b-komplement mit r = 5 Stellen dar. b) Führen Sie die Rechnungen x + y, y + z und z + z schriftlich im b-komplement mit b = und b = 8 durch und geben Sie das Ergebnis als Zahl mit Vorzeichen im Dezimalsystem an. c) Stellen Sie die Zahlen x, y und z im»exzess 16«System dar und bilden Sie die Summen x + y, y + z und z + z in diesem System. Frage 1 a) Stellen Sie die Zahlen x = 5, y = 1/4 und z = 1, 7 als normalisierte Gleitkommazahlen mit b = 1 und b = (Binärsystem) dar. Dabei sollen Mantisse und Exponent einfach als Zahlen zur jeweiligen Basis mit Vorzeichen dargestellt werden, d. h. sie müssen nicht»rechnergerecht«in einem bestimmten Gleitkommasystem für Computer geschrieben werden, insbesondere in diesem Teil der Aufgabe auch nicht konform zu den IEEE Standards. Binärmantissen, die keine endliche Länge haben, dürfen anch der zehnten Nachkommastelle abgeschnitten werden. 3
b) Geben Sie die jeweilige Repräsentation der obigen Zahlen als Bitfolge gemäß der IEEE Standardform einfacher Genauigkeit an. Frage 11 Verwandeln Sie folgende IEEE Gleitkommazahlen einfacher Genauigkeit (geschrieben als achtziffrige Hexadezimalzahlen) in Dezimalzahlen. Sehr große oder sehr kleine Zahlen dürfen Sie auch in der»wissenschaftlichen«notation mit Zweierpotenzen schreiben. a) 4E48 b) 3F88 c) 8 d) C7f Frage 1 Betrachten Sie die mit acht hexadezimalen Ziffern geschriebenen IEEE Gleitkommazahlen einfacher Genauigkeit a = 3EE und b = 3D8. a) Berechnen Sie die Summe c := a + b als IEEE Gleitkommazahl einfacher Genauigkeit. b) Berechnen Sie die Differenz d := b a als IEEE Gleitkommazahl einfacher Genauigkeit. c) Berechnen Sie das Produkt p := b a als IEEE Gleitkommazahl einfacher Genauigkeit. d) Berechnen Sie den Quotienten q := a/b als IEEE Gleitkommazahl einfacher Genauigkeit. Schreiben Sie das Ergebnis jeweils als Zahl mit 8 Hexadezimalziffern. 4
. Lösungsvorschläge zu den Fragen Frage 1 Wandeln Sie die Dezimalzahl 711 in ihre Darstellung bezüglich der Basen, 3, 4, 8, 1 und 16 um. Antwort 1 Basis : 711 1 = 111111 711 1 = 51 + 18 + 64 + 4 + + 1 Basis 3: 711 1 = 1 3 = 9 + 7 + 6 + + 1 + i Q i b i 711 1 37 79 1 3 6 4 8 5 Basis 4: 711 1 = 313 4 i Q i b i 711 3 1 177 1 44 3 11 3 4 Basis 8: 711 1 = 137 8 Bestimmung aus Binärzahl 711 1 = 1 11 111 }{{}}{{}}{{}}{{} Basis 1: 711 1 = 4B3 1 1 i Q i b i 711 3 1 59 B 4 4 3 Basis 16: 711 1 = C7 16 Bestimmung aus Binärzahl 711 1 = 1 11 111 }{{}}{{}}{{} Berechnungsweg für die Basen 3, 4 und 1: b i = Q i mod Basis Q i+1 = [Q i /Basis] C 7 7 (Ganzzahl) 5
Frage Wandeln Sie die Dezimalzahl 654 in ihre Darstellung bezüglich der Basen, 7, 8 und 16 um. Antwort Basis : 654 1 = 11111 654 1 = 51 + 18 + 8 + 4 + = 9 + 7 + 3 + + 1 Basis 7: 654 1 = 163 7 i Q i b i 654 3 1 93 13 6 3 1 1 Basis 8: 654 1 = 116 8 Bestimmung aus Binärzahl 654 1 = 1 1 1 11 }{{}}{{}}{{}}{{} 1 Basis 16: 654 1 = 8E 16 Bestimmung aus Binärzahl 654 1 = 1 1 111 }{{}}{{}}{{} 8 1 E 6 6
Frage 3 Führen Sie folgende Zahlenbasisumwandlungen nach der effizientesten Methode aus. a) Wandeln Sie die Zahl 111 3 in die Dezimalnotation um. b) Wandeln Sie die Hexadezimalzahl ABCD in eine Binärzahl und eine Dezimalzahl um. c) Wandeln Sie die Hexadezimalzahl CAFFEE in eine Oktalzahl um. d) Wandeln Sie die Zahl A137 11 in die Dezimalnotation um. e) Wandeln Sie die Hexadezimalzahl E1D1 in eine Binär- und in eine Dezimalzahl um. f) Wandeln Sie die hexadezimalzahl ABCDEF in eine Oktalzahl um. Antwort 3 a) nach Klammermethode (((a k n + a k 1 ) n + a k ) n + + a 1 ) n + a : 111 3 = (((1 3 + ) 3 + ) 3 + 1) 3 + 1 = 139 1 b) mit der Ersetzungstabelle: A 16 = 11, B 16 = 111, C 16 = 11 und D 16 = 111 : ABCD 16 = 1111111111 ABCD 16 = 13 + 16 (1 + 16 (11 + 1 16)) = 43981 1 c) Umrechnung über Binärzahlen mit der Ersetzungstabelle: A 16 = 11, C 16 = 11, E 16 = 111 und F 16 = 1111 : CAFFEE 16 = 11 1 11 111 111 111 11 11 }{{}}{{}}{{}}{{}}{{}}{{}}{{} }{{} 6 = 6577756 8 d) nach Klammermethode A137 11 = 7 + 11 (3 + 11 (1 + 1 11)) = 13471 1 e) mit der Ersetzungstabelle: D 16 = 111, und E 16 = 111 : E1D1 16 = 11111111 5 7 7 7 5 6 E1D1 16 = 1 + 16 (13 + 16 (1 + 14 16)) = 5789 1 f) Umrechnung über Binärzahlen mit der Ersetzungstabelle: A 16 = 11, B 16 = 111, C 16 = 11, D 16 = 111, E 16 = 111 und F 16 = 1111 : ABCDEF 16 = 1 11 11 11 11 11 111 }{{}}{{}}{{}}{{}}{{}}{{}}{{} 5 = 536337 8 3 6 3 3 7 7
Frage 4 Eine k-stellige Zahl a = a k... a, dargestellt bezüglich einer Basis n, ist in ihre l-stellige Darstellung b l... b bezüglich einer anderen Basis m umzuwandeln. Die Berechnung soll in der Zielbasis m ausgeführt werden. Für die Lösung sollen die beiden folgenden Methoden verwendet werden: direktes Ausrechnen des Ausdrucks k i= a i n i in der Zielbasis m; effizientere Methode durch Klammerung des vorhergehenden Ausdrucks. a) Wieviele Rechenoperationen sind für diese Umwandlung maximal erforderlich nach der ersten und nach der zweiten Methode (Unterschieden werden sollen Multiplikationsund Additionsoperationen)? b) Multiplikationen können im Binärsystem durch eine kleine Anzahl von Additionen berechnet werden. Wieviele Additionen muß ein Rechner, der kein Multiplikationsbefehl besitzt, maximal für die Umwandlung nach den o. g. Methoden ausführen? Begründen Sie Ihre Antworten. Zur Bestimmung der Antwort kann die Formel 1 + + 3 + + k = verwendet werden. k(k + 1) Antwort 4 a) Klammermethode (((a k n + a k 1 ) n + a k ) n +... ) n + a k Multiplikationen und k Additionen insgesamt k Rechenoperationen Methode k i= a in i Hier werden ebenfalls k Additionen benötigt. Um das Produkt a i n i zu bestimmen, werden k-multiplikationen benötigt; um n i zu bestimmen werden jeweils i Multiplikationen benötigt, wenn i < 1 können diese entfallen; d. h. für k i= a in i werden k i=1 i Multiplikationen für die Berechnung von allen n i benötigt. k Additionen und k + k i=1 i Multiplikationen, also werden k + k i=1 i Rechenoperationen benötigt. b) Klammermethode k Additionen und k Multiplikationen 1 Multiplikation kann durch maximal x Additionen ersetzt werden, wobei x die Anzahl der Binärziffern von n bezeichnet, d. h. xk Additionen für die Multiplikation Gesamtanzahl der Additionen: k + xk = k(x + 1) Summenausdrucksmethode k Additionen und k i=1 i Multiplikationen, d. h. k i=1 i = k(k+1) 1 Multiplikation kann durch maximal x Additionen ersetzt werden, wobei x die Anzahl der Binärziffern von n bezeichnet x k(k+1) Gesamtanzahl der Additionen: k + x k(k+1) = k ( 1 + 1 x(k + 1)) 8
Frage 5 a) Wandeln Sie die Dezimalzahlen 5, 7 und 13 in ihre Binärdarstellung um und berechnen Sie im Binärsystem 13 + 5 7. b) Wandeln Sie Dezimalzahl 11 in ihre Binärdarstellung um und dividieren Sie im Binärsystem das Ergebnis von Teil a) durch diese Zahl. Bestimmen Sie nur den ganzzahligen Quotienten und den Rest. Antwort 5 a) 5 1 = 11, 7 1 = 111, 13 1 = 111 13 1 = 13 1 13 1 111 111 111 + 111 11 + 111 1111 5 7 111 11 111 + 111 111 13 + 5 7 1111 + 111 1111 13 + 5 7 = 1111 b) 11 1 = 111 1111 : 111 = 11 111 111 111 11 1111 : 11 1 = 11 mit Rest 11. 9
Frage 6 Die ersten beiden Fibonacci-Zahlen sind F = und F 1 = 1. Danach ist jede weitere Fibonacci- Zahl als die Zumme ihrer beiden unmittelbaren Vorgänger definiert, d. h. ab n = gilt F n := F n 1 + F n a) Berechnen Sie die ersten zehn Fibonacci-Zahlem im Binärsystem, d. h. die letzte zu berechnende Zahl ist F 9. b) Berechnen Sie im Binärsystem den Quotienten und den Rest der Division von der letzten in Teil a) bestimmten Fibonacci-Zahl F 9 durch Fünf. Antwort 6 a) F = = 1 F 1 = 1 = 1 1 F = F + F 1 = 1 = 1 1 F 3 = F 1 + F = 1 + 1 = 1 = 1 F 4 = F 3 + F = 1 + 1 = 11 = 3 1 F 5 = F 4 + F 3 = 11 + 1 = 11 = 5 1 F 6 = F 5 + F 4 = 11 + 11 = 1 = 8 1 F 7 = F 6 + F 5 = 1 + 11 = 111 = 13 1 F 8 = F 7 + F 6 = 111 + 1 = 111 = 1 1 F 9 = F 8 + F 7 = 111 + 111 = 11 = 34 1 b) F 9 = 11, 5 1 = 11 11 : 11 = 11 11 111 11 1 F 9 : 5 1 = 11 : 11 = 11 Rest 1 1
Frage 7 Berechnen Sie die ersten zen Quadratzahlen im Binärsystem. Die Zählung beginnt mit 1! Antwort 7 n 1 n n 1 1 1 1 = 1 1 1 1 = 1 3 11 11 11 = 11 4 1 1 1 = 1 5 11 11 11 = 111 6 11 11 11 = 11 7 111 111 111 = 111 8 1 1 1 = 1 9 11 11 11 = 111 11
Frage 8 Die babylonische Methode zur Berechnung von Quadratwurzeln ist leicht auf Computern zu implementieren und geht wie folgt (sie wurde tatsächlich von den Babyloniern erfunden): Sei a die (positive) Zahl, deren Quadratwurzel zu berechnen ist. Wir konstruieren eine Folge {s n } n N von Schätzungen für a, die schnell gegen den wahren Wert konvergiert. Dazu nehmen wir s := 1 und setzen die Folge durch die rekursive Regel fort. s n+1 := 1 ( s n + a s n ) Berechnen Sie nach dieser Methode, aber unter Beachtung der folgenden Besonderheiten: Rechnen Sie im Binärsystem Die während der Berechnung auftretenden Binärbrüche dürfen Sie, ohne Rundung, nach der achten Stelle hinter dem Komma einfach abschneiden. Rechnen Sie so viele Schritte, bis Sie die Quadratwurzel, richtig gerundet, auf 6 binärstellen hinter dem Komma genau bestimmt haben. Antwort 8 a = 1 = 1, 1 1 = 1 1 =, 1 n = s +1 = 1 ( n = 1 s 1+1 =, 1 1 + 1 ) 1 =, 1 11 = 1, 1 ( n = s +1 =, 1 1, 1 + 1 ) 1, 1 =, 1 (1, 1 + 1, 1111) = 1, 1111 ( ) 1 n = 3 s 3+1 =, 1 1, 1111 + 1, 1111 =, 1 (1, 1111 + 1, 1111) = 1, 1111 1
Frage 9 a) Stellen Sie für b = (Binärsystem) und b = 8 (Oktalsystem) die Dezimalzahlen x = 13, y = 11 und z = 6 im b-komplement mit r = 5 Stellen dar. b) Führen Sie die Rechnungen x + y, y + z und z + z schriftlich im b-komplement mit b = und b = 8 durch und geben Sie das Ergebnis als Zahl mit Vorzeichen im Dezimalsystem an. c) Stellen Sie die Zahlen x, y und z im»exzess 16«System dar und bilden Sie die Summen x + y, y + z und z + z in diesem System. Antwort 9 a) b) b = 1 b = o. V. b = Kompl. b = 8 o. V. b = 8 Kompl. x 13 111 111 15 15 y -11 111 111 13 77765 z -6 11 111 6 7777 x + y b = 111 = 13 b = 8 15 = 13 +111 = 11 +77765 = 11 11 = 1 = c) y + z b = 111 = 11 b = 8 77765 = 11 +111 = 6 +7777 = 6 11111 17 177757 = 17 Überlauf, da das Vorzeichen vom Ergebnis ungleich dem Vorzeichen beider Summanden ist z + z b = 111 = 6 b = 8 7777 = 6 111 = 6 7777 = 6 111 = 1 177764 = 1 b = 1 b = o. V. b = und Exzess 16 x 13 111 1111 y 11 111 11 z 6 11 11 x + y 1111 +11 11 11 1 y + z 11 +11 1111 11111 Überlauf z + z 11 +11 11 1 1 1 13
Frage 1 a) Stellen Sie die Zahlen x = 5, y = 1/4 und z = 1, 7 als normalisierte Gleitkommazahlen mit b = 1 und b = (Binärsystem) dar. Dabei sollen Mantisse und Exponent einfach als Zahlen zur jeweiligen Basis mit Vorzeichen dargestellt werden, d. h. sie müssen nicht»rechnergerecht«in einem bestimmten Gleitkommasystem für Computer geschrieben werden, insbesondere in diesem Teil der Aufgabe auch nicht konform zu den IEEE Standards. Binärmantissen, die keine endliche Länge haben, dürfen anch der zehnten Nachkommastelle abgeschnitten werden. b) Geben Sie die jeweilige Repräsentation der obigen Zahlen als Bitfolge gemäß der IEEE Standardform einfacher Genauigkeit an. Antwort 1 a) b) b = 1 b = VZ Man. Exp. Entspricht VZ Man. Exp. Entspricht x 5 + 5 1, 5 1 1 + 1 1, 1 y,5 + 5, 5 1 + - 1, z -1,7 17 1.17 1 1 11111 1, 11111 x = 5 VZ = ; Exp = 19 1 = 11 1 11 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} 4 IEEE-Darstellung: 4A A y =, 5 VZ = ; Exp = 15 1 = 111111 11 111 1 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} 3 E IEEE-Darstellung: 3E8 8 z = 1, 7 VZ = 1; Exp = 17 1 = 1111111 111 1111 111 11 11 11 11 11 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} B F IEEE-Darstellung: BFD9999A D 9 9 9 9 A 14
Frage 11 Verwandeln Sie folgende IEEE Gleitkommazahlen einfacher Genauigkeit (geschrieben als achtziffrige Hexadezimalzahlen) in Dezimalzahlen. Sehr große oder sehr kleine Zahlen dürfen Sie auch in der»wissenschaftlichen«notation mit Zweierpotenzen schreiben. a) 4E48 b) 3F88 c) 8 d) C7f Antwort 11 a) b) c) d) 4E48 = 1 1 111 1 1 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} 4 VZ = ˆ= + E Exp = 111 = 133 1 133 17 = 6 6 Man. = 1, 1111 = 1, 7851565 1 4E48 IEEE = +114, 5 1 3F88 = 11 1111 1 1 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} 3 VZ = ˆ= + F 8 Exp. = 1111111 = 17 1 17 17 = Man. = 1, 1 = 1, 65 1 3F88 IEEE = +1, 65 1 8 = 1 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} VZ = ˆ= + 8 Exp. = 1 = 1 1 17 + 1 = 16 16 4 8 8 8 IEEE = +1, 16 = +1, 175494351 1 38 C7F = 11 111 1111 }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} C VZ = 1 ˆ= 7 F Exp. = 11111 = 143 1 143 17 = 16 16 C7F IEEE = 1.875 1 6 = 188 15
Frage 1 Betrachten Sie die mit acht hexadezimalen Ziffern geschriebenen IEEE Gleitkommazahlen einfacher Genauigkeit a = 3EE und b = 3D8. a) Berechnen Sie die Summe c := a + b als IEEE Gleitkommazahl einfacher Genauigkeit. b) Berechnen Sie die Differenz d := b a als IEEE Gleitkommazahl einfacher Genauigkeit. c) Berechnen Sie das Produkt p := b a als IEEE Gleitkommazahl einfacher Genauigkeit. d) Berechnen Sie den Quotienten q := a/b als IEEE Gleitkommazahl einfacher Genauigkeit. Schreiben Sie das Ergebnis jeweils als Zahl mit 8 Hexadezimalziffern. Antwort 1 a = 3EE IEEE VZ = ˆ= + Exp. = 111111 = 15 1 ˆ= Man. = 1, 11 b = 3D8 IEEE VZ = ˆ= + a) c := a + b b) d := b a 1, 11 +, 1 c) p := a b d) q := a/b Exp. = 111111 = 13 1 ˆ= 4 Man. = 1, 1, = 1, 1 c = 3F, 1 1, 11, 11 = 1, 1 d = BEC,1 1, 11 1 + 1 + 1 Liste der Versionen,111, 111 4 = 1, 11 6 p = 3CE 1, 11 :, 1 = 1, 11 q = 4E Version Datum Bearbeiter Bemerkung 1. 4..7 Krä Dokumenterstellung 1.1 11..7 Krä Frage 9 1 hinzugefügt 16