Technische Informatik II (für Bachelor) INF 1211 Vorlesung 2: Zahlendarstellungen und Konvertierungen 08.04.2008 , v14 Themen: Zahlendarstellung Zahlenkonvertierung Zeichendarstellung Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Schimmler.
Polyadische Darstellung von Zahlen (I) n = Σ bi * Bi = bN-1 BN-1 + 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 i=0 Beispiel: B=10, bi {0,1,...,9}
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) LSB: Least Significant Digit (Bit)
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
Umwandlung von Zahlen zwischen polyadischen Systemen (II) 1. Rechnen im Quellsystem: (x)B (y)B‘ Stelle die Basis B‘ des Zielsystems im Quellsystem dar. q0=x Wiederhole für aufsteigendes i: qi = qi-1 div B‘ ; ri-1 = qi-1 mod B‘ bis qi=0. Die ri sind die B‘-adische Darstellung von y
Umwandlung von Zahlen zwischen polyadischen Systemen (I) 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
Beispiel: Konvertierung (647)10 ( 101…11)2 => (647)10 =
Konvertierung Natürlicher Zahlen Hornerschema n = Σ bi * Bi = bN-1BN-1+ bN-2BN-2+...+b1B1+ b0B0 = ((..(bN-1B+ bN-2)* B+ bN-3)* B...+b1)* B+ b0 i=0
Umwandlung von Zahlen zwischen polyadischen Systemen (III) Abarbeitung des Hornerschemas von links nach rechts: MSB LSB ((..(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
Beispiel: Konvertierung (647)10 ( 101…11)2 MSB LSB 01002 )
Umwandlung von Zahlen zwischen polyadischen Systemen (IV) deren Basen Zweierpotenzen sind Umwandeln aller Ziffern ins Binärsystem Umwandeln der Quellzahl ziffernweise in eine Binärzahl Zusammenfassen geeigneter Bits (LSB-first) als jeweils eine Ziffer im Zielsystem. Erzeugen der Ziffern im Zielsystem (LSB = least significant bit, also LSB-first heißt: man beginnt mit dem geringwertigsten Bit)
Beispiel b=2 b‘=24=16 k=4 4
Beispiele Binär 2-adisch Ternär 3-adisch Oktal 8-adisch Dezimal 10-adisch Hexadezimal 16-adisch 1 1 1 1 1 10 2 2 2 2 11 10 3 3 3 100 11 4 4 4 101 12 5 5 5 110 20 6 6 6 111 21 7 7 7 1000 22 10 8 8 1001 100 11 9 9 1010 101 12 10 A 1011 102 13 11 B 1100 110 14 12 C 1101 111 15 13 D 1110 112 16 14 E 1111 120 17 15 F 10000 121 20 16 10
B-Komplement (I) -n (BN – n) Definition: Sei n eine natürliche Zahl, dargestellt als N-stellige 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 (BN – n)
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 )
Beispiel: (B=2, N=8 Stellen), n=4 berechnen Sie -4 in 2-Komplement 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
Negieren in B-Komplement (III) Beispiel: Hardware-Implementierung 2-Komplement: Addierer n N N -n + in 2-Komplement entspricht (2N-n) N-fach Inverter 1
Negieren in (B-1)-Komplement Hardwareimplementierung 1-Komplement: Entspricht (2-1)-Komplement n N N -n in 1-Komplement entspricht (2N-1 - n) N-fach Inverter
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
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.
Beispiel: 4-stellige Zahl als 2-Komplement Dezimal 10-adisch Binär 2-adisch negative Zahlen -8 1000 8 24-1 = - 8 + 24-1-1 = 7 -7 1001 9 -6 1010 10 -5 1011 11 -4 1100 12 -3 1101 13 -2 1110 14 -1 1111 15 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111
bei N=8 Bit, Bereich: −128(10) bis +127(10) (-1) 1-Komplement 2-Komplement
Addition einer positiven und einer negativen Zahl in 2-Komplement, 5-bit Zahlen Bereich -25-1 = -16 bis + 25-1-1 = +15 01101 -5 - 00101 01101 -5 8 Kein Überlauf (Overflow)! + 11011 11010 +00001 -5 = 11011 01000 = 8 1 7 00111 -9 -2 7 00111 -9 - 01001 + 10111 10110 +00001 -9 = 10111 11110 = negativ 00001 +00001 00010 = 2
Addition zwei Zahlen mit gleichem Vorzeichen in 2-Komplemnt, 5-bit Zahlen Bereich -25-1 = -16 bis + 25-1-1 = +15 Sicherungstelle Vorzeichen 11 0 01011 10 0 01010 Regel: Es gibt einen Überlauf falls das Vorzeichenbit und die Sicherungsstelle ungleich sind! 21 0 10101 Negative! =-11 => falsch! ungleich !!! ==> Überlauf! 11 0 01011 03 0 00011 -11 0 10101 - 7 0 11001 -11 0 10101 - 3 0 11101 14 0 01110 -18 1 01110 -14 1 10010 gleich !!! ==> kein Überlauf! ungleich !!! ==> Überlauf! gleich !!! ==> kein Überlauf!
Beispiele 8-Bit-Zahlen in 2-Komplement Bereich -28-1 = -128 bis + 28-1-1 = +127 ungleich! Überlauf unterschiedliche Vorzeichen => immer überlaufsfrei 1 gleich! korrekt ungleich Überlauf 1
Multiplikation B-adischer Zahlen Beispiel 1: Beispiel 2:
Rationale Zahlen als Festkomma Zahlen
Hornerschema für Brüche 0, b-1 b-2 ……. b-M Beispiel: (0,3475)10 (0, 1011010)2 -1 n = Σ 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 i=-M
Umwandlung von Zahlen zwischen polyadischen Systemen Verfahren der wiederholten Multiplikation mit Abschneiden: ................. Beispiel: S. Übung
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.
Gleitkommazahlen
Gleitkommazahlen, Vorzeichen, Exponent und Mantisse
Normierte Gleitkommazahlen
Multiplikation von Gleitkommazahlen N1 = V1 * 0, M1 * 2E1 N2 = V2 * 0, M2 * 2E2 N1 * N2 = (V1*V2) * 0, (M1*M2) * 2E1+E2
Addition von Gleitkommazahlen N1 = V1 * 0,M1 * 2E1 N2 = V2 * 0,M2 * 2E2 Exponentendifferenz berechnen (z.B. E1>E2). d=E1-E2 Verschieben der Mantisse M2 um d Stellen nach rechts. M‘2=M2 >> d Addition der Mantissen M1 und M‘2 Berechnung des Vorzeichens des Ergebnisses Normalisierung N1+N2 = (V)*0, (M1+M‘2) * 2E1
IEEE 754 Format 32-Bit (float, single) 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]
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.
Beispiel: Restklassensystem (CRT) Moduli: 7 und 9, Produkt P=7•9=63 Darstellbare Bereich 0 bis (P-1), also 0 bis 62 N1 = 10 entspricht 3 1 N2 = 4 entspricht 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: 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
Codierung der Dezimalziffern Binär BCD Aiken 3-Excess 2aus5 0000 0000 0011 11000 1 0001 0001 0100 00011 2 0010 0010 0101 00101 3 0011 0011 0110 00110 4 0100 0100 0111 01001 5 0101 1011 1000 01010 6 0110 1100 1001 01100 7 0111 1101 1010 10001 8 1000 1110 1011 10010 9 1001 1111 1100 10100 Gewichte 8421 2421 keine 74210
EBCDIC (Extenden Binary Coded Decimal Interchange Code) 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 0000 1 0001 2 0010 3 0011 4 0100 blank § . < ( + l 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 1 2 3 4 5 6 7 8 9
ASCII (American Standard Code for Information Interchange) 000 001 010 011 100 101 110 111 0000 0000 NUL 0000 DLE SP 0000 @ P 0000 ‘ p 1 0001 0001 SOH 0001 DC1 ! 1 0001 A Q 0001 a q 2 0010 0010 STX DC2 0010 “ 2 0010 B R 0010 b r 3 0011 0011 ETX DC3 0011 # 3 0011 C 0011 S c s 4 0100 0100 EOT 0100 DC4 $ 0100 4 D 0100 T d t 5 0101 0101 ENQ 0101 NAK % 0101 5 E 0101 U e u 6 0110 0110 ACK SYN 0110 & 0110 6 F 0110 V f v 7 0111 0111 BEL 0111 ETB ´ 0111 7 G 0111 W g w 8 1000 1000 BS 1000 CAN ( 8 1000 H 1000 X h x 9 1001 1001 SKIP EM 1001 ) 9 1001 I 1001 Y i y A 1010 1010 LF 1010 SUB * 1010 : J Z 1010 j z B 1011 1011 VT ESC 1011 + 1011 ; K [ 1011 k { C 1100 1100 FF FS 1100 , 1100 < L 1100 \ l | D 1101 1101 CR GS 1101 - = 1101 M 1101 ] m } E 1110 1110 SO HOME 1110 . 1110 > N 1110 n ~ F 1111 1111 SI NL 1111 / ? 1111 O 1111 _ o DEL
Warum werden den Kindern Frage: Warum werden den Kindern im Orient bei 1 x 1 Prüfung die Hände gebunden?
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 2 = 6 3 2 3 x 2 x 4 = 8 + + + = 5 x 10 = 50 3 + 1 = 4 x 10 = 40 56 48
Quiz: Zeichnen Sie den Multiplikations-graphen mit Hardwareeinheiten Für A x B Fünf- Finger Multiplikationsalgorithmus A und B sind je grösser als 5. Zeichnen Sie den Multiplikations-graphen mit Hardwareeinheiten Beweisen Sie die Richtigkeit des Algorithmus Wie funktioniert der Algorithmus falls A und B kleinere Werte als 5 annehmen?