Technische Informatik II (für Bachelor) INF 1211 Übung 1: Konvertieren von Zahlen 028.04.2008 , v2 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 1a: Konvertieren Sie die Zahl (368)10 in eine Dualzahl. 1. Möglichkeit: Wiederholte Division durch 2 mit Rest. 368 = 184 · 2 + 0 Es gilt also: (368)10 184 = 92 · 2 + 0 92 = 46 · 2 + 0 46 = 23 · 2 + 0 = ((((((((0·2+1)·2+0)·2+1)·2+1)·2+1)·2+0)·2+0)·2+0)·2+0 23 = = 1·28+0·27+1·26+1·25+1·24+0·23+0·22+0·21+0·20 = (101110000)2 Die Berechnung erfolgte hierbei im Dezimalsystem. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) 11 · 2 + 1 11 = 5·2+1 5= 2·2+1 2= 1·2+0 1= 0·2+1 Seite 2 Konvertieren von Zahlen Lösung 1a: Konvertieren Sie die Zahl (368)10 in eine Dualzahl. 368 = (3 · 10 + 6) · 10 + 8 2. Möglichkeit: Jede Ziffer der Zahl 36810 als 4-stellige = (00112 · 10102 + 01102) · 10102 + 10002 Binärzahl darstellen und Hornerschema = (111102 + 01102) · 10102 + 10002 für B = 10 ausrechnen: = 101101002 + 10002 = 1011100002 Nebenrechnungen im Dualsystem: 0011·1010 11110 100100·1010 0011 + 0110 100100 0000 100100 000000 0011 100100 0000 000000 0011110 101101000 101101000 + 1000 101110000 Die Berechnung findet hier vollständig im Dualsystem statt, daher ist das Verfahren zur Konvertierung von Dezimal- in Dualzahlen durch Rechner mit Binärarithmetik geeignet. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 3 Konvertieren von Zahlen Lösung 1b: Multiplizieren Sie die Dualzahl aus a) mit der Zahl (101)2 im Dualsystem. 101110000 · 101 = 368 · 5 = 1840 101110000·101 101110000 000000000 101110000 11100110000 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 4 Konvertieren von Zahlen Lösung 1c: Konvertieren Sie das Ergebnis aus b) in eine Dezimalzahl. 1. Möglichkeit: Division durch (1010)2 = (10)10 mit Rest. Die Berechnung erfolgt dabei im Dualsystem: 11100110000:1010 = 10111000 1010 010001 10111000:1010 = 10010 1010 1010 0001111 0001100 1010 1010 10010:1010 = 1 01010 00100 = Rest 1010 1010 01000 = Rest 0000 = Rest 111001100002 = ((12·10102 + 10002)·10102 + 1002)·10102 + 02 = ((1·10 + 8)·10 + 4)·10 + 0 = 1840 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 5 Konvertieren von Zahlen Lösung 1c: Konvertieren Sie das Ergebnis aus b) in eine Dezimalzahl. 2. Möglichkeit: Berechnung im Dezimalsystem mit Hornerschema 111001100002 = 1·210+1·29+1·28+0·27+0·26+1·25+1·24+0·23+0·22+0·21+0·20 = 1024 + 512 + 256 + 32 + 16 = 1840 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 6 Konvertieren von Zahlen Lösung 2: Multiplizieren Sie die Zahl (321)4 mit der Zahl (213)4 im 4-adischen Zahlensystem. 321·213 1302 321 2223 202233 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 7 Konvertieren von Zahlen Lösung 3: Führen Sie die Subtraktion (2354)10 - (1234)10 im Dualsystem aus. Benutzen Sie dazu das 2-Komplement. Zunächst die Zahlenkonvertierung in das Dualsystem: 2354 = (((2·10 + 3)·10 + 5)·10 + 4) = (((102·10102 + 112)·10102 + 1012)·10102 + 1002) = 100100110010 1234 = (((1·10 + 2)·10 + 5)·10 + 4) = (((12·10102 + 102)·10102 + 112)·10102 + 1012) = 010011010010 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 8 Konvertieren von Zahlen Lösung 3: 2er Komplement: 1234 = 010011010010 invertieren = 101100101101 eins aufaddieren = 101100101110 = 2er Komplement zu 1234 Dezimalzahl Schutzstelle Vorzeichen Zahlenwert A = 235410 0 100100110010 Komplement zu B = -123410 1 101100101110 Ergebnis = 112010 0 010001100000 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 9 Konvertieren von Zahlen Lösung 4: Konvertieren Sie die Zahl (13.303.790)10 in eine Dual-, Oktal- und Hexadezimalzahl. Zunächst konvertieren wir die Zahl durch wiederholtes Teilen durch 16 in eine Hexadezimalzahl: 13303790:16 = 831486 Rest 14 128 50 831486:16 = 51967 Rest 14 48 80 23 51967:16 = 3247 Rest 15 31 16 48 16 77 39 154 3247:16 = 202 Rest 15 64 32 144 32 139 76 108 202:16 = 12 Rest 10 47 128 64 96 16 32 110 127 126 42 13303790 = 121610161516151614161416 15 96 112 112 32 = CAFFE16 14 15 14 10 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 10 Konvertieren von Zahlen Lösung 4: Da für Hexadezimalzahlen die Basis = 24 und für Binärzahlen = 2 ist, läßt sich aus einer Hexadezimalzahl die entsprechende Binärzahl berechnen, indem man jede einzelne Ziffer der Hexadezimalzahl in eine vierstellige Binärzahl umrechnet: (12)10 (10)10 (15)10 (15)10 (14)10 (14)10 (C)16 (A)16 (F)16 (F)16 (E)16 (E)16 (1100)2 (1010)2 (1111)2 (1111)2 (1110)2 (1110)2 Für Oktalzahlen ist die Basis = 23. Aus einer Oktalzahl kann man die entsprechende Binärzahl errechnen, indem man jede einzelne Ziffer der Oktalzahl in die entsprechende 3-stellige Binärzahl umrechnet. Umgekehrt errechnet man aus einer Binärzahl die entsprechende Oktalzahl, indem man wie folgt je drei aufeinanderfolgende Ziffern der Binärzahl als eine 3-stellige Binärzahl betrachtet und diese in die entsprechende Oktalziffer umrechnet: (110 010 101 111 111 111 101 110)2 = (6 2 5 7 7 7 5 6 )8 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 11