Technische Informatik II (für Bachelor) INF 1211 Vorlesung 2: Zahlendarstellungen und Konvertierungen 08.04.2008 , v14 Themen: 1. 2. 3. Zahlendarstellung Zahlenkonvertierung Zeichendarstellung Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Schimmler. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 1 Polyadische Darstellung von Zahlen (I) N-1 n = Σ bi * Bi i=0 =b N-1 + N-1 B bN-2 BN-2 + ∙ ∙ ∙ + b1 B1 + b0 B0 heißt B-adische Darstellung von n (Basis=B) bi {0,1,...,B-1} heißen Ziffern Beispiel: B=10, bi {0,1,...,9} IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 2 Polyadische Darstellung von Zahlen (II) Kurzschreibweisen für B-adische Darstellung: (bN-1 bN-2 ... b1 b0)B oder, wenn klar ist, um welche Basis es sich handelt: bN-1 bN-2 ... b1 b0 MSB: Most Significant Digit (Bit) IDA, Technische Universität Braunschweig LSB: Least Significant Digit (Bit) Technische Informatik II (INF 1211) Seite 3 B-adische Darstellung Satz: Die N-stellige B-adische Darstellung ermöglicht jede ganze Zahl aus {0,1,...,BN-1} auf genau eine Weise darzustellen. Beispiele: B=2 für N=5 Stellen kann die Ganzzahlen n= 0, 1, 2 …. 31 darstellen 25-1 B=5 für N=3 Stellen kann die Ganzzahlen n= 0, 1, 2 …. 124 darstellen 53-1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 4 Umwandlung von Zahlen zwischen polyadischen Systemen (II) 1. Rechnen im Quellsystem: (x)B (y)B‘ 1. Stelle die Basis B‘ des Zielsystems im Quellsystem dar. 2. q0=x 3. Wiederhole für aufsteigendes i: qi = qi-1 div B‘ ; ri-1 = qi-1 mod B‘ bis qi=0. 1. Die ri sind die B‘-adische Darstellung von y IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 5 Umwandlung von Zahlen zwischen polyadischen Systemen (I) 1. Verfahren der wiederholten Division mit Rest (Basis=B): Umwandlung n = ( bN-1 bN-2 …. b3 b2 b1 b0) B n : B = q1 Rest b0 q1 : B = q2 Rest b1 q2 : B = q3 Rest b2 q3 : B = q4 Rest b3 . . . . . . . . . qN-2 : B = qN-1 Rest bN-2 qN-1 : B = 0 Rest bN-1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 6 Beispiel: Konvertierung (647)10 ( 101…11)2 => IDA, Technische Universität Braunschweig (647)10 = Technische Informatik II (INF 1211) Seite 7 Konvertierung Natürlicher Zahlen Hornerschema N-1 n = Σ bi * Bi i=0 = bN-1BN-1+ bN-2BN-2+...+b1B1+ b0B0 = ((..(bN-1B+ bN-2)* B+ bN-3)* B...+b1)* B+ b0 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 8 Umwandlung von Zahlen zwischen polyadischen Systemen (III) Abarbeitung des Hornerschemas von links nach rechts: LSB MSB ((..(bN-1B+ bN-2)* B+ bN-3)* B...+b1)* B+ b0 Rechnen im Zielsystem: • • • Umwandeln aller bi ins B‘-adische System Umwandeln von B ins B‘-adische System Ausrechnen im B‘-adischen System IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 9 Beispiel: Konvertierung (647)10 MSB ( 101…11)2 LSB 01002 ) IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 10 Umwandlung von Zahlen zwischen polyadischen Systemen (IV) deren Basen Zweierpotenzen sind 1. Umwandeln aller Ziffern ins Binärsystem 2. Umwandeln der Quellzahl ziffernweise in eine Binärzahl 3. Zusammenfassen geeigneter Bits (LSB-first) als jeweils eine Ziffer im Zielsystem. 4. Erzeugen der Ziffern im Zielsystem (LSB = least significant bit, also LSB-first heißt: man beginnt mit dem geringwertigsten Bit) IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 11 Beispiel 4 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) b=2 b‘=24=16 k=4 Seite 12 Beispiele Binär 2-adisch Ternär 3-adisch Oktal 8-adisch 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 IDA, Technische Universität Braunschweig Dezimal Hexadezimal 10-adisch 16-adisch Technische Informatik II (INF 1211) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 Seite 13 B-Komplement (I) Definition: Sei n eine natürliche Zahl, dargestellt als Nstellige B-adische Zahl. Das B-Komplement von n ist die N-stellige B-adische Zahl gebildet aus den letzten N Ziffern von BN-n Das B-Komplement wird interpretiert als -n -n IDA, Technische Universität Braunschweig (BN – n) Technische Informatik II (INF 1211) Seite 14 B-Komplement (II) Umwandeln einer B-adischen Zahl ins Negative (B-Komplement): n = (bN-1 bN-2 ... b1 b0)B (- n)zK = (b‘N-1 b‘N-2 ... b‘1 b‘0)B Jede Ziffer bi wird ersetzt durch die Ziffer (B -1- bi). Auf die so entstehende Gesamtzahl wird 1 addiert. Beispiel: Anwendung für B=2 bi ersetzt durch (B -1- bi) ( 2-1- bi ) Also bi 1- bi oder bi bi (also alle Bits werden invertiert). Dann wird 1 zum invertierten Vektor addiert. Also: -n = bN-1 bN-2 ... b1 b0 + 1 ( -n Entspricht 2N-n ) IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 15 Beispiel: (B=2, N=8 Stellen), n=4 berechnen Sie -4 in 2-Komplement 1. Vorzeichen ignorieren und ins Binärsystem umrechnen: (4)10 = (00000100)2 2. Invertieren, da negativ: 11111011 3. Eins addieren, da negativ: 11111011 + 00000001 = 11111100 => (11111100)2 = (- 4)10 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 16 Negieren in B-Komplement (III) Beispiel: Hardware-Implementierung 2-Komplement: Addierer n N N + -n in 2-Komplement entspricht (2N-n) N-fach Inverter IDA, Technische Universität Braunschweig 1 Technische Informatik II (INF 1211) Seite 17 Negieren in (B-1)-Komplement Hardwareimplementierung 1-Komplement: Entspricht (2-1)-Komplement n N N N-fach Inverter IDA, Technische Universität Braunschweig -n in 1-Komplement entspricht (2N-1 - n) Technische Informatik II (INF 1211) Seite 18 B-Komplement, Zahlenbereich Darstellbarer Bereich N-stelliger B-adischer Zahlen im B-Komplement für gerades B { -(B/2) BN-1 , .... , +(B/2)BN-1-1 } Genau die Zahlen, die mit einer Ziffer ≥ B/2 beginnen, sind negativ. MSB ≥ B/2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 19 Beispiel: Zahlenbereich für (B=2) { -(2/2) 2N-1 bis +(2/2)2N-1-1 } { - 2N-1 bis +(2N-1-1) } • bei 8 Bit Bereich: −128(10) bis +127(10) • bei 16 Bit Bereich: −32768(10) bis +32767(10) • bei 32 Bit Bereich: −2147483648(10) bis +2147483647(10) • bei 64 Bit Bereich: −9223372036854775808(10) bis +9223372036854775807(10) • usw. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 20 Beispiel: 4-stellige Zahl als 2-Komplement - 24-1 = - 8 + 24-1-1 = 7 IDA, Technische Universität Braunschweig Dezimal 10-adisch Binär 2-adisch -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 Technische Informatik II (INF 1211) negative Zahlen 8 9 10 11 12 13 14 15 Seite 21 bei N=8 Bit, Bereich: −128(10) bis +127(10) (-1) 1-Komplement IDA, Technische Universität Braunschweig 2-Komplement Technische Informatik II (INF 1211) Seite 22 Addition einer positiven und einer negativen Zahl in 2-Komplement, 5-bit Zahlen Bereich 13 -5 01101 - 00101 -25-1 = -16 bis + 25-1-1 = +15 13 -5 8 11010 01101 + 11011 01000 = 8 Kein Überlauf (Overflow)! 1 +00001 -5 = 11011 7 -9 00111 - 01001 7 -9 -2 00111 + 10111 11110 = negativ 00001 10110 +00001 +00001 00010 = 2 -9 = 10111 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 23 Addition zwei Zahlen mit gleichem Vorzeichen in 2-Komplemnt, 5-bit Zahlen Bereich Sicherungstelle -25-1 = -16 bis + 25-1-1 = +15 Vorzeichen 11 10 21 Regel: Es gibt einen Überlauf falls das Vorzeichenbit und die Sicherungsstelle ungleich sind! 0 01011 0 01010 0 10101 Negative! =-11 => falsch! ungleich !!! ==> Überlauf! 11 03 14 0 01011 0 00011 0 01110 gleich !!! ==> kein Überlauf! IDA, Technische Universität Braunschweig -11 - 7 -18 0 10101 0 11001 1 01110 ungleich !!! ==> Überlauf! Technische Informatik II (INF 1211) -11 - 3 -14 0 10101 0 11101 1 10010 gleich !!! ==> kein Überlauf! Seite 24 Beispiele 8-Bit-Zahlen in 2-Komplement Bereich -28-1 = -128 bis + 28-1-1 = +127 0 unterschiedliche Vorzeichen => immer überlaufsfrei ungleich! Überlauf 1 1 gleich! korrekt IDA, Technische Universität Braunschweig ungleich Überlauf Technische Informatik II (INF 1211) Seite 25 Multiplikation B-adischer Zahlen Beispiel 1: Beispiel 2: IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 26 Rationale Zahlen als Festkomma Zahlen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 27 Hornerschema für Brüche 0, b-1 b-2 ……. b-M Beispiel: (0,3475)10 (0, 1011010)2 -1 n=Σ i=-M bi * Bi = b-1B-1+ b-2B-2+...+b-M+1B-M+1+ b-MB-M = ((..(b-MB-1+ b-M+1)*B-1+ b-M-2)*B-1...+b-1)*B-1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 28 Umwandlung von Zahlen zwischen polyadischen Systemen Verfahren der wiederholten Multiplikation mit Abschneiden: n1 : n B n2 : n'1B b1 : n1 b2 : n2 n3 : n'2 B b3 : n3 n'3 : n3 n3 ................. nM : n'M 1B bM : nM n'1 : n1 n1 n'2 : n2 n2 n'M : nM nM Beispiel: S. Übung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 29 Gleitkommazahlen Gleitkommazahlen haben den Vorteil, dass sie einen viel größeren Zahlenbereich abdecken als gleichlange Festkommazahlen. Ferner bieten Sie in der Nähe der Null eine wesentlich höhere Genauigkeit. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 30 Gleitkommazahlen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 31 Gleitkommazahlen, Vorzeichen, Exponent und Mantisse IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 32 Normierte Gleitkommazahlen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 33 Multiplikation von Gleitkommazahlen N1 = V1 * 0, M1 * 2E1 N2 = V2 * 0, M2 * 2E2 N1 * N2 = (V1*V2) * 0, (M1*M2) * IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) 2E1+E2 Seite 34 Addition von Gleitkommazahlen N1 = V1 * 0,M1 * 2E1 N2 = V2 * 0,M2 * 2E2 1. Exponentendifferenz berechnen (z.B. E1>E2). d=E1-E2 2. Verschieben der Mantisse M2 um d Stellen nach rechts. M‘2=M2 >> d 3. Addition der Mantissen M1 und M‘2 4. Berechnung des Vorzeichens des Ergebnisses 5. Normalisierung N1+N2 = (V)*0, (M1+M‘2) * 2E1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 35 Standard Gleitkommazahlen IEEE 754 Format 32-Bit (float, single) 1 Vorzeichenbit 8 Exponentenbits (MSB first) 23 Mantissenbits (MSB first) Darstellbarer Bereich ca. [-1041..+1041] IEEE 754 Format 64-Bit (double) 1 Vorzeichenbit 11 Exponentenbits (MSB first) 52 Mantissenbits (MSB first) Darstellbarer Bereich ca. [-10300..+10300] IEEE 754 Format 80-Bit (extended) 1 Vorzeichenbit 15 Exponentenbits (MSB first) 64 Mantissenbits (MSB first) Darstellbarer Bereich ca. [-105000..+105000] IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 36 Restklassensystem (Chinese Remainder Theorem CRT) Definition: Ein Restklassensystem ist ein Zahlensystem, das durch eine Menge von Moduli bestimmt ist. Diese Moduli sind natürliche Zahlen, die paarweise teilerfremd sind. Sei {p1,p2,...,pk} die Menge der Moduli und P = p1 p2 ... pk das Produkt aller pi. Dann sind im zugehörigen Restklassensystem alle Zahlen von 0 bis P-1 eindeutig durch die Reste bei der Division durch die pi charakterisiert. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 37 Beispiel: Restklassensystem (CRT) Moduli: 7 und 9, Produkt P=7•9=63 Darstellbare Bereich 0 bis (P-1), also 0 bis 62 N1 = 10 N2 = 4 entspricht entspricht 3 1 4 4 N1 + N2 = (3+4) mod 7, (1+4) mod 9 = { 0 , 5 } N1 x N2 = (3x4) mod 7, (1x4) mod 9 = { 5 ,4 } Inverse Chinese Remainder Theorem ICRT: x [( r1. p2 . ( p21 mod p1 ) r2 . p1. ( p11 mod p2 )] mod p1 p2 x [( r1. 9. 4 r2 . 7. 4] mod 63 N1 + N2 = { 0 , 5 } = 0 . 9 . 4 + 5 . 7. 4 = 140 mod 63 = 14 N1 x N2 = { 5 , 4 } = 5 . 9 . 4 + 4 . 7. 4 = 292 mod 63 = 40 Vorteil: Arithmetik mit kleinen Zahlen Nachteil: Rückwandlung etwas schwerer IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 38 Codierung der Dezimalziffern Dezimalziffer 0 1 2 3 4 5 6 7 8 9 Gewichte Binär BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 8421 IDA, Technische Universität Braunschweig Aiken 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 2421 3-Excess 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 keine Technische Informatik II (INF 1211) 2aus5 11000 00011 00101 00110 01001 01010 01100 10001 10010 10100 74210 Seite 39 EBCDIC (Extenden Binary Coded Decimal Interchange Code) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 l 0 0000 1 0001 2 0010 3 0011 4 0100 blank § . < ( + 5 0101 ! $ ● ) ; 6 0110 & - ^ , % 7 0111 : # @ 8 1000 A b c d e f g h i 9 1001 J k l m n o p q r A 1010 s t u v w x y z B 1011 C 1100 A B C D E F G H I D 1101 J K L M N O P Q R E 1110 S T U V W X Y Z F 1111 2 3 4 5 6 7 8 9 0 / 1 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) ‛ > ? * “ Seite 40 ASCII (American Standard Code for Information Interchange) 000 001 010 011 100 101 110 111 0 0000 NUL 0000 DLE SP 0000 0 @ 0000 P ‘ p 1 0001 SOH 0001 DC1 ! 0001 1 A 0001 Q a q 2 0010 STX 0010 DC2 “ 0010 2 B 0010 R b r 3 0011 ETX 0011 DC3 # 0011 3 C 0011 S c s 4 0100 EOT 0100 DC4 $ 0100 4 D 0100 T d t 5 0101 ENQ 0101 NAK % 0101 5 E 0101 U e u 6 0110 ACK 0110 SYN & 0110 6 F 0110 V f v 7 0111 BEL 0111 ETB ´ 0111 7 G 0111 W g w 8 1000 BS 1000 CAN ( 1000 8 H 1000 X h x 9 1001 SKIP 1001 EM ) 1001 9 I 1001 Y i y A 1010 LF 1010 SUB * 1010 : J 1010 Z j z B 1011 VT 1011 ESC + 1011 ; K 1011 [ k { C 1100 FF 1100 FS , 1100 < L \ 1100 l | D 1101 CR 1101 GS - 1101 = M 1101 ] m } E 1110 SO HOME 1110 . 1110 > N 1110 n ~ F 1111 SI 1111 NL / 1111 ? O 1111 _ o DEL IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 41 Frage: Warum werden den Kindern im Orient bei 1 x 1 Prüfung die Hände gebunden? IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 42 Modulo 5 Reduzierte Multiplikations-Algorithmus Warum werden den Kindern im Orient bei 1 x 1 Prüfung die Hände gebunden? 5+1+1 5+1+1+1 5+1+1+1 5+1 3 x 2=6 2 x 4=8 + + 2 + 3 = 5 x 10 = 50 56 IDA, Technische Universität Braunschweig 3 + 1 Technische Informatik II (INF 1211) = 4 x 10 = 40 48 Seite 43 Quiz: Für A x B Fünf- Finger Multiplikationsalgorithmus A und B sind je grösser als 5. 1. Zeichnen Sie den Multiplikations-graphen mit Hardwareeinheiten 2. Beweisen Sie die Richtigkeit des Algorithmus 3. Wie funktioniert der Algorithmus falls A und B kleinere Werte als 5 annehmen? IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 44