Technische Informatik II Übung 1: Konvertieren von Zahlen (für Bachelor) INF 1211 Übung 1: Konvertieren von Zahlen 028.04.2008 , v2 Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Michalik
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 184 = 92 · 2 + 0 92 = 46 · 2 + 0 46 = 23 · 2 + 0 23 = 11 · 2 + 1 11 = 5 · 2 + 1 5 = 2 · 2 + 1 2 = 1 · 2 + 0 1 = 0 · 2 + 1 Es gilt also: Die Berechnung erfolgte hierbei im Dezimalsystem. (368)10 = ((((((((0·2+1)·2+0)·2+1)·2+1)·2+1)·2+0)·2+0)·2+0)·2+0 = 1·28+0·27+1·26+1·25+1·24+0·23+0·22+0·21+0·20 = (101110000)2
Konvertieren von Zahlen Lösung 1a: Konvertieren Sie die Zahl (368)10 in eine Dualzahl. 2. Möglichkeit: Jede Ziffer der Zahl 36810 als 4-stellige Binärzahl darstellen und Hornerschema für B = 10 ausrechnen: 368 = (3 · 10 + 6) · 10 + 8 = (00112 · 10102 + 01102) · 10102 + 10002 = (111102 + 01102) · 10102 + 10002 = 101101002 + 10002 = 1011100002 Nebenrechnungen im Dualsystem: 0011·1010 0011 0000 0011110 11110 + 0110 100100 100100·1010 100100 000000 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.
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 11100110000
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 0001111 01010 0000 = Rest 10111000:1010 = 10010 1010 0001100 00100 = Rest 10010:1010 = 1 1010 01000 = Rest 111001100002 = ((12·10102 + 10002)·10102 + 1002)·10102 + 02 = ((1·10 + 8)·10 + 4)·10 + 0 = 1840
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
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
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
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 100100110010 Komplement zu B = -123410 1 101100101110 Ergebnis = 112010 010001100000
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 48 23 16 77 64 139 110 96 14 831486:16 = 51967 Rest 14 80 31 16 154 144 108 96 126 112 14 51967:16 = 3247 Rest 15 48 39 32 76 64 127 112 15 3247:16 = 202 Rest 15 32 47 15 202:16 = 12 Rest 10 16 42 32 10 13303790 = 121610161516151614161416 = CAFFE16
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 (14)10 (C)16 (A)16 (F)16 (E)16 (1100)2 (1010)2 (1111)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