2. Zahlen und logische Schaltungen Überlick Informatik II SS 2004 Information und Informationsdarstellung Zahlensysteme Rechnerarithmetik Logische Schaltungen Boolesche Algebra Kombinierte logische Schaltungen Prof. Dr. Dieter Hogrefe Dipl.-Inform. Michael Ebner Lehrstuhl für Telematik Institut für Informatik Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Polyadische Zahlensysteme (1/2) Polyadische Zahlensysteme (2/2) Potenzen zu einer Basis B als Stellenwert z.B. Codierung von 198510 N-1 n = ∑ai * Bi i=0 (B, ai ∈ N0, B > 1) = ((...(aN-1 * B) + aN-2) * B + ...)*B + a1) *B + a0 (Horner Schema) Konvention: <ZAHL><BASIS> Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 BCD (kein polyadisches Zahlensystem): 0001 1001 1000 0101 1 = aN-1 * BN-1 + aN-2 * BN-2 + ... + a1 * B1 + a0 2.30 besagt das <ZAHL> einen Wert im Zahlensystem mit der Basis <Basis> beschreibt. z.B. 12310 123 im Dezimalsystem, 11102 1110 im Dualsystem 2.31 9 8 5 Dezimalsystem (Basis 10): 198510 = 1 * 103+9 * 102 +8 * 101 + 5 * 100 = ((1 * 10) + 9) * 10 + 8) *10 + 5 Dualsystem (Basis 2): 111110000012 = 1*210 + 1*29 + 1*28 + 1*27 + 1*26 + 0*25 + 0*24 + 0*23 + 0*22 + 0*21 + 0*20 =(((((((((1*2 + 1)*2 + 1)*2 + 1)*2 + 1)*2 + 0)*2 + 0)*2 + 0)*2+ 0)*2+ 0)*2+ 1 =198510 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.32 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Zahlensysteme mit Zweierpotenz als Basis Umrechnung zwischen Zahlensystemen Binärsystem (Basis 2) Vierersystem (Basis 4) Octalsystem (Basis 8) Hexadezimalsystem (Basis 16) (Zeichenvorrat: 0...9, A...F) Einfache Umrechnung: „Umgruppieren der Binärstellen“ Beispiel: 146310 = 101101101112 = 01 01 10 11 01 11 1 1 2 3 1 3 = = 010 110 110 111 2 6 6 7 0101 1011 0111 5 B 7 I. Darstellung mit Basis B1 * II. Darstellung mit Basis 10 / =26678 III. Darstellung mit Basis B2 =5B716 2.33 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Beispiel für manuelle Umrechnung (2/3) DB716 = ???7 (1) Multiplikative Umrechnung mit Basis 10 D16 * 16102 + B16 * 16101 + 716 * 16100 = D16 * 25610 + B16 * 1610 + 716 = 1310 * 25610 + 1110 * 1610 + = 332810 + + = 351110 17610 710 710 oder entsprechend dem Horner Schema DB716 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 = (2) Dividierende Umrechnung im Quellsystem (Quellsystem: Basis 10, Zielsystem: Basis 7) (Einfaches ‘Ausmultiplizieren’) = 2.34 2. Zahlen und logische Schaltungen Beispiel für manuelle Umrechnung (1/3) DB716 Dividierende Umrechnung im Quellsystem (hier Basis 10) (2) 2. Zahlen und logische Schaltungen Multiplikative Umrechnung im Zielsystem (hier Basis 10) (1) = 1123134 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Im allgemeinen reicht es nicht aus einfach nur die Binärstellen umzugruppieren. Empfehlung für die manuelle Umrechnung: ((D16 * 1610) + B16) * 1610 + 716 351110 / 7 = 501 Rest 4 = a0 501 / 7 = 71 Rest 4 = a1 71 / 7 = 10 Rest 1 = a2 10 / 7 = 1 Rest 3 = a3 1 / 7 = 0 Rest 1 = a4 0 / 7 = 0 Rest 0 = a5 ... / 7 = 0 Rest 0 = a6 ... ... ... ... ... ... ... ... ... ... ... ... ... 0 = an = ((1310 * 1610) + 1110) * 1610 + 710 ... = (20810 + 1110) * 1610 + 710 ... = 350410 + 710 = 351110 (a4a3a2a1a0)7 = 131447 2.35 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.36 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Empfehlung für manuelle Umrechnung zwischen Zahlensystemen (Zusammenfassung) Beispiel für manuelle Umrechnung (3/3) Beispiel: DB716 = ???7 I. Darstellung mit Basis B1 Also: (1) Multiplikative Umrechnung im Zielsystem (hier Basis 10) * DB716 = 351110 = 131447 Ï Ï Schritt (1) Schritt (2) (Multiplikation) (Division) II. Darstellung mit Basis 10 (2) Dividierende Umrechnung im Quellsystem (hier Basis 10) / 2.37 = 501 = 71 = 10 = 1 Rest = 0 Rest Rest Rest Rest 3 1 4 = a0 4 = a1 1 = a2 = a3 = a4 2.38 2. Zahlen und logische Schaltungen Direkte Umrechnung einer Zahlendarstellung mit Basis B1 in eine Zahlendarstellung mit der Basis B2 (2/2) Multiplikative Umrechnung im Zielsystem Dividierende Umrechnung im Quellsystem Beispiel: DB716 = ???7 Beispiel: DB716 = ???7 Einfaches ‘Ausmultiplizieren’ DB716 :7 :7 :7 :7 :7 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2. Zahlen und logische Schaltungen Direkte Umrechnung einer Zahlendarstellung mit Basis B1 in eine Zahlendarstellung mit der Basis B2 (1/2) 3511 501 71 10 1 DB716 = 351110 = 131447 III. Darstellung mit Basis B2 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 DB716 = ((D16 * 16) + B16) * 16 + 716 = ((13 * 16) + 11)*16 +7 = (208 + 11) * 16 + 7 = 219 * 16 + 7 = 3504 + 7 = 351110 = = = = D16 * 5147 167 * 5147 124637 131447 ( 1610 = 1016 = 227, 16102= 25610 = 5147) + + + B16 * 227 147 * 227 3417 + + + 716 107 107 DB716 / 716 = 1F516 1F516 / 716 = 4716 / 716 A16 / 116 / Rest 4 = a0 4716 Rest 4 = a1 = A16 Rest 1 = a2 716 = 116 Rest 3 = a3 716 = 016 Rest 1 = a4 oder entsprechend dem Horner Schema DB716 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 = = = = = ((D16 * 227) + B16) * 227 + 716 ((167 * 227) + 147) * 227 + 107 (4157 + 147) * 227 + 107 131347 + 107 131447 a4 a3 a2 a1 a0 = 131447 2.39 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.40 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Darstellung von Brüchen Handhabung von unechten Brüchen Brüche werden als negative Potenzen der Basis dargestellt. zB = -N ∑ai * Bi Vor dem Komma anfallende Ziffern entsprechen dem Rest bei der Division im Quellsystem (vgl. Folie 2-35). Für Umrechnung Aufspalten in (B, ai ∈ N0, B > 1, ai<B) i=-1 Horner Schema: z= 1 (a + -1 B 1 (a-3 + ... + B 1 (a-2 + B 1 (a-N+1 + B 1 a-N) ... ) B ganze Zahl und echter Bruch. zB = 0 , a-1 a-2 a-3 a-4 ... a-N Darstellung: Wiederholte Multiplikation mit der Basis B bringt die Ziffern ai vor das Komma: -N -N zB * B = a-1 + ∑ai * Bi (wobei immer gilt : ∑ai * Bi < 1) i=-2 z= a-1 + i=-2 1 (a + -2 B 1 B (a-3 + ... + 1 (a -N+1 + B 1 a ) ... ) -N B z.B.: 0.5310 * 1010 = 5,310 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.41 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Umrechnung im Quellsystem Beispiel: Umrechnung im Quellsystem (1/2) Beispiel: 12,023 = ??,??2 Ganzahliger Anteil: 123 = 1012 Echter Bruch: 0,023 = 0,???2 2.42 0,023 = 0,???2 (Bemerkung: 123 = 510) Dividierende Umrechnung im Quellsystem (vgl. Folie 2-35) bedeutet sukzessive Division durch 1/B (Division mit Bruch = Multiplikation mit Kehrwert des Bruches) Sukzessive Division durch 1/B entspricht einer Sukzessiven Multiplikation mit der Basis B. Der ganzzahlige Anteil bei den Multiplikationsschritten bildet die ai im Zielsystem. Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.43 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.44 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen 0,023 * 23 = 0,113 a-1 = 0 Beispiel: Umrechnung im Quellsystem (2/2) 0,113 * 23 = 0,223 a-2 = 0 0,223 * 23 = 1,213 a-3 = 1 Ergebnis: 12,023 Periode 0,213 * 23 = 1,123 a-4 = 1 0,123 * 23 = 1,013 a-5 = 1 0,013 * 23 = 0,023 a-6 = 0 0,023 * 23 = 0,113 a-6 = 0 0,113 51 7 3 2.45 2. Zahlen und logische Schaltungen Darstellung von Brüchen in unterschiedlichen Zahlensystemen kann zu Ungenauigkeiten führen. Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Umrechnen im Zielsystem (2/2) z.B. 0.43657 Ö ???10 (Erinnerung: multiplikative Umrechnung, vgl. Folie 2-34) Ö wg. Darstellung als negativer Exponent der Basis heißt das Division Division nach Horner mit Anschreiben der Ziffern in umgekehrter Reihenfolge 0,43657 = 1 7 * (4 + 5 1 7 1 * (3 + 71 * (6 + 7 5))) 1 1 = ((( 7 + 6) * 7 + 3) * 7 + 4) * Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.46 2. Zahlen und logische Schaltungen Umrechnen im Zielsystem (1/2) ~ 5,2221710 5,210 101,0011102 d.h. 0,023=0,0011102 0,22 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 = 1 7 510 : 710 = 0,714310 6, 714310 : 710 = 0,959210 3, 959210 : 710 = 0,565610 4, 565610 : 710 = 0,652210 0, 4 3 6 5 2.47 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 7 0, 6 5 2 2 10 2.48 2. Zahlen und logische Schaltungen 2. Zahlen und logische Schaltungen Zahlendarstellung und Rechnen im Dualsystem (1/3) Durch N Bits lassen sich 2N Zahlenwerte codieren Nur positive Zahlen, Wertebereich: 0 ... (2N–1) Positive und negative Zahlen: „Most significant“ Bit als Vorzeichencodierung ↑ 6 5 4 3 2 1 0 Bei positiven Zahlen: Zahlen n und n + BN sind nicht unterscheidbar (höchstwertige Bit geht verloren) Bei positiven und negativen Zahlen: Additionsüberlauf kann zu negativen Ergebnissen führen Beispiel: 0 1001110 78 + 0 1011000 „most significant bit“ 0 = positive Zahl 1 = negative Zahl 1 0100110 | N = 8 Ö Wertebereich: 0 ... 255 oder -128 ... +127 N= 16 Ö Wertebereich: 0 ... 65535 oder -32768 ... +32767 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.49 Zahlendarstellung und Rechnen im Dualsystem (3/3) Was macht man? man führt Operationen auf einem Zahlenring durch Darstellung (Codierung) der Zahlen als Binärworte Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 + 88 166 > 128 -38 negatives Vorzeichen 2. Zahlen und logische Schaltungen N Bits erlauben 2N Möglichkeiten zur Zahlendarstellung, d.h. nur eine Darstellung mit endlicher Genauigkeit. (N-1) - Bit Zahl mit Vorzeichen darstellbarer Wertebereich: [-2N-1 ... 0 ... 2N-1-1] 7 Zahlendarstellung und Rechnen im Dualsystem (2/3) 2.51 Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 2.50