Technische Informatik II (für Bachelor) INF 1211 Übung 2: Konvertieren von Zahlen 18.04.2008 , v3 Überarbeitet von T. Çatalkaya Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Michalik IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 1 Konvertieren von Zahlen Lösung 1: Zeigen Sie: In jedem B-adischen Zahlensystem mit B ≥ 4 ist (1331)B eine Kubikzahl. (1331)B = 1 · B3 + 3 · B2 + 3 · B1 + 1 · B0 = (B+1)3 = ((11)B)3 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 2 Konvertieren von Zahlen Lösung 2a: Konvertieren Sie die Zahl (0,1358)10 ins 2er, 4er, 5er und 8er System. Das Ergebnis soll auf 5 Stellen genau sein. (0,1358)10 → 2er System (0,1358)10 → 4er System 0,1358 · 2 = 0,2716 => 0 0,1358 · 4 = 0,5432 => 0 0,2716 · 2 = 0,5432 => 0 0,5432 · 4 = 2,1728 => 2 0,5432 · 2 = 1,0864 => 1 0,1728 · 4 = 0,6912 => 0 0,0864 · 2 = 0,1728 => 0 0,6912 · 4 = 2,7648 => 2 0,1728 · 2 = 0,3456 => 0 0,6912 · 4 = 2,7648 => 2 0,3456 · 2 = 0,6912 => 0 0,0592 · 4 = 0,2368 => 0 → (0,00100)2 → (0,020230)4 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 3 Konvertieren von Zahlen Lösung 2b: Konvertieren Sie die Zahl (0,1358)10 ins 2er, 4er, 5er und 8er System. Das Ergebnis soll auf 5 Stellen genau sein. (0,1358)10 → 5er System (0,1358)10 → 8er System 0,1358 · 5 = 0,679 => 0 0,1358 · 8 = 1,0864 => 1 0,679 · 5 = 3,395 => 3 0,0865 · 8 = 0,6912 => 0 0,395 · 5 = 1,975 => 1 0,6912 · 8 = 5,5296 => 5 0,975 · 5 = 4,875 => 4 0,5296 · 8 = 4,2368 => 4 0,875 · 5 = 4,375 => 4 0,2368 · 8 = 1,8944 => 1 0,375 · 5 = 1,875 => 1 0,8944 · 8 = 7,1552 => 7 → (0,031441)5 → (0,105417)8 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 4 Konvertieren von Zahlen Lösung 3: Konvertieren Sie die Zahl 468,2 in die Festkommadarstellung zur Basis 2 mit 9 Vorkomma- und 6 Nachkommastellen. 468,2 = (468)10 + (0,2)10 ( b9b8b7b6b5b4b3b2b1b0 , b-1b-2b-3b-4b-5b-6 )2 Berechnung der bi für 0 ≤ i ≤ 9: (in Hex (Basis 16) 468:16 = 29 Rest 4 32 148 144 4 29:16 = 1 Rest 13 16 13 D16 1:16 = 0 Rest 1 (468)10 = (1 D 4 )16 Berechnung der bi für -6 ≤ i ≤ -1: 0,2 · 2 = 0,4 => b-1 = 0 0,4 · 2 = 0,8 => b-2 = 0 0,8 · 2 = 1,6 => b-3 = 1 0,6 · 2 = 1,2 => b-4 = 1 0,2 · 2 = 0,4 => b-5 = 0 0,4 · 2 = 0,8 => b-6 = 0 0,8 · 2 = 1,6 => b-7 = 1 = ( 1 1101 0100 )2 ( 0, 0011001 )2 Damit ergibt sich nach Rundung (b-6 wird auf 1 gesetzt, da die siebte Nachkommastelle eine 1 ist) das Ergebnis: (b9b8b7b6b5b4b3b2b1b0,b-1b-2b-3b-4b-5b-6)2 = (111010100 , 001101)2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 5 Konvertieren von Zahlen Lösung 4a: Wandeln Sie die Zahlen A=(58)10 und C=(23)10 ins 4er und ins 6er System um, und führen Sie die Subtraktion A-C mit Hilfe des B-Komplements durch. In 4er System: 58 : 4 = 14 Rest 2 23 : 4 = 5 Rest 3 14 : 4 = 3 Rest 2 5 : 4 = 1 Rest 1 3 : 4 = 0 Rest 3 1 : 4 = 0 Rest 1 → (23)10 = (113)4 → (58)10 = (322)4 -113 Komplement bilden: Addieren: 100004 01134 032214 0322 + 3221 1 0203 IDA, Technische Universität Braunschweig Kontrolle: 3224-1134=2034 (58-23=35)10 ↑ Überlauf Technische Informatik II (INF 1211) 2 . 42 + 3 . 40 32 + 3 = 35 Seite 6 Konvertieren von Zahlen Lösung 4b: Wandeln Sie die Zahlen A=(58)10 und C=(23)10 ins 4er und ins 6er System um, und führen Sie die Subtraktion A-C mit Hilfe des B-Komplements durch. 6er System: 58 : 6 = 9 Rest 4 23 : 6 = 3 Rest 5 9 : 6 = 1 Rest 3 3 : 6 = 0 Rest 3 1 : 6 = 0 Rest 1 → (58)10 = (134)6 → (23)10 = (35)6 Komplement bilden: Addieren: Kontrolle: 100006 0356 55216 01346 +55216 10055 1346-356=556 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 7 Konvertieren von Zahlen Lösung 5: Konvertieren Sie die Zahl (556)7 ins 3er und ins 8er System. (556)7 → 3er System (556)7 → 8er System (556)7 : (3)7 = 164 Rest 1 (556)7 : (11)7 = 50 Rest 6 (164)7 : (3)7 = 43 Rest 2 (50)7 : (11)7 = 4 Rest 3 (43)7 : (3)7 = 13 Rest 1 (3)7 : (11)7 = 0 Rest 4 (13)7 : (3)7 = 3 Rest 1 → (556)7 = (436)8 (3)7 : (3)7 = 1 Rest 0 (1)7 : (3)7 = 0 Rest 1 → (556)7 = (101121)3 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 8 Konvertieren von Zahlen Lösung 6a-1: Bestimmen Sie die Gleitkommadarstellung der Zahlen 10 und 0,3 im IEEE 32-Bit-Format. 10 = (1010)2 = (-1)0 · (1,010)2 · 23 = (-1)0 · (1,010 000 000 000 000 000 000 00)2 · 2130-127 Die Gleitkommadarstellung der Zahl 10 im IEEE 32-Bit-Format besteht also aus dem Vorzeichenbit V = 0, der Mantisse M = 010 000 000 000 000 000 000 00 und dem Exponenten E = (130)10 = 10 000 010. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 9 Konvertieren von Zahlen Lösung 6a-2: Bestimmen Sie die Gleitkommadarstellung der Zahlen 10 und 0,3 im IEEE 32-Bit-Format. Für die Zahl 0,3 gilt: 0,3 · 2 = 0,6 => b-1 = 0 0,6 · 2 = 1,2 => b-2 = 1 0,2 · 2 = 0,4 => b-3 = 0 0,4 · 2 = 0,8 => b-4 = 0 0,8 · 2 = 1,6 => b-5 = 1 0,6 · 2 = 1,2 => b-6 = 1 Nach Rundung auf 23 Nachkommastellen ist 0,3 = (1,00110011001100110011010)2 · 2-2. Die Gleitkommadarstellung der Zahl 0,3 im IEEE 32-Bit-Format besteht also aus dem Vorzeichen V = 0, der Mantisse M = 00110011001100110011010 und dem Exponenten E = 125 = 01111101. 0,2 · 2 = 0,4 => b-7 = 0 0,4 · 2 = 0,8 => b-8 = 0 0,8 · 2 = 1,6 => b-8 = 1 => 0,3 = (0,01001 .. )2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 10 Konvertieren von Zahlen Lösung 6b: Addieren Sie die beiden Gleitkommazahlen aus 6a-1 und 6a-2. (1,010 000 000 000 000 000 000 00)2 · 23 + (1,00110011001100110011010)2 · 2-2 1. Basendifferenz ausgleichen: Exponentendifferenz: 3-(-2) = 5 Die zweite Binärzahl muss also um 5 Stellen nach rechts geschoben werden, wenn der Exponent der Zweierpotenz von -2 auf 3 geändert wird. 2. Addieren: 1,010 000 000 000 000 000 000 00 + 0,000 010 011 001 100 110 011 01 1,010 010 011 001 100 110 011 01 Das Ergebnis der Addition lautet hiermit: (1,01001001100110011001101)2 · 23 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 11 Konvertieren von Zahlen Lösung 6c: Multiplizieren Sie die beiden Gleitkommazahlen. Wir multiplizieren (1,00110011001100110011010)2 · 2-2 mit (1,010 000 000 000 000 000 000 00)2 · 23 Es werden die Mantissen ergänzt und die führenden Einsen miteinander multipliziert. Die Multiplikation von 2-2 mit 23 wird durch Addition der Exponenten ausgeführt: 2-2 · 23 = 2-2+3 = 21 Die Multiplikation der 24-Bit Dualzahlen ergibt: 1,00110011001100110011010 · 1,01000000000000000000000 100110011001100110011010 000000000000000000000000 100110011001100110011010 000000000000000000000 11000000000000000000000010000000000000000000000 Als Ergebnis erhält man also (1,1000000000000000000000010)2 · 21 ≈ 3 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 12 Konvertieren von Zahlen Lösung 7-1: Bestimmen Sie die kleinste und die größte positive Gleitkommazahl im IEEE 32-Bit-Format. Die Gleitkommazahl wird aufgebaut durch Mantisse · BasisExponent. Das meist benutzte Gleitkommaformat ist in der Norm IEEE 754 spezifiziert. Gesamtlänge n Bit 32 Mantissenlänge n Bit 23 Exponentlänge n Bit 8 xmin 2-126 ≈ 10-38 xmax (2 - 2-23) · 2-127 ≈ 1038 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 13 Konvertieren von Zahlen Lösung 7-2: Bestimmen Sie die kleinste und die größte positive Gleitkommazahl im IEEE 32-Bit-Format. Die kleinste Gleitkommazahl wk im IEEE 32-Bit-Format ergibt sich wie folgt: wk = (-1)0 · (0,00…01)2 · 2-126 = 2-23 · 2-126 = 2-149 Die größte positive Gleitkommazahl wg im IEEE 32-Bit-Format ergibt sich wie folgt: wk = (-1)0 · (1,1…1)2 · 2254-127 = 1 · (1,1…1)2 · 2127 = 1 · (1,1…1)2 · 2127-23 = (224 – 1) · 2104 = 2128 – 2104 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 14