Zahlen und Zeichen (1) Fragen: • Wie werden Zahlen repräsentiert und konvertiert? • Wie werden negative Zahlen und Brüche repräsentiert? • Wie werden die Grundrechenarten ausgeführt? • Was ist, wenn das Ergebnis einer Operation größer ist als die größte darzustellende Zahl? Hauptunterschied zwischen Computer- und menschlicher Arithmetik: • Genauigkeit der sowie Platzbedarf für die Darstellung von Zahlen sind beim Computer endlich und begrenzt. • Computer arbeiten mit einer anderen Zahlendarstellung Rechner speichern die Information (Zahlen) in Einheiten festgesetzter Bitlänge, genannt Worte. Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (2) Mikroprozessor Wortlänge (Bits 8085, Z80, 6809 8 8086, 68000 16 80386, 68020 32 Pentium, PowerPC (Sun SPARC, IBM AIX) 32 typischer Mikrocontroller (4), 8, 16, (32) Cray-1 Supercomputer, Intel Itanium, AMD Opteron 64 Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (3) Beispiel für Zahlendarstellung mit unterschiedlichen Basen: binär 1 1 1 1 1 0 1 0 0 0 1 1 • 210 + 1 • 29 + 1 • 28 + 1 • 27 + 1 • 26 + 0 • 25 + 1 • 24 + 0 • 23 + 0 • 22 + 0 • 21 + 1 • 20 1024 + 512 + 256 + 128 + 64 + 0 + 16 + 0 + 0 + 0 + 1 oktal 3 7 2 1 3 2 1 3 • 8 + 7 • 8 + 2 • 8 + 1 • 80 1536 + 448 + 16 + 1 dezimal 2 0 0 1 3 2 1 2 • 10 + 0 • 10 + 0 • 10 + 1 • 100 2000 + 0 + 0 + 1 hexadezimal 7 D 1 7 • 162 + 13 • 161 + 1 • 160 1792 + 208 + 1 Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (4) Kollektion von Zahlendarstellungen mit den 4 verschiedenen Basen: dezimal 0 1 2 3 7 8 10 11 12 15 16 20 50 60 80 100 1000 2989 Vorlesung Informatik 1 WS 2016 binär oktal 0 1 10 11 111 1000 1010 1011 1100 1111 10000 10100 110010 111100 1010000 1100100 1111101000 101110101101 T. Ihme 0 1 2 3 7 10 12 13 14 17 20 24 62 74 120 144 1750 5655 hexadezimal 0 1 2 3 7 8 A B C F 10 14 32 3C 50 64 3E8 BAD Zahlen und Zeichen (5) Beispiel für Konversion einer Dezimalzahl in eine Binärzahl: Tabelle für Umwandlung binär - hexadezimal: Hexabinär dezimal 0 1 2 3 4 5 6 7 Quotient Hexabinär dezimal 0000 0001 0010 0011 0100 0101 0110 0111 8 9 a b c d e f 1492 746 373 186 93 46 23 11 5 2 1 0 1000 1001 1010 1011 1100 1101 1110 1111 Rest 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (6) Vorzeichenbehaftete Zahlen: die Komplement - Darstellung Komplement: „Ergänzung“ Der negative Wert einer Zahl ist in der Zahl selbst enthalten • Das Vorzeichenbit ist Teil des Summanden und wird somit in eine arithmetische Operation mit eingeschlossen • Subtraktion wird auf die Addition zurückgeführt • Keine Notwendigkeit für ein zusätzliches Subtrahierwerk Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (7) Vorzeichenbehaftete Zahlen: das Einer - Komplement b-1 - Komplement: z + z = bn − 1 n = Länge der Darstellung von z b = Basis Das Einer - Komplement -N einer binären Zahl N aus [0 , 2n-1-1] erreicht man durch bitweises Invertieren von N -N aus [-0, -2n-1-1] -N = 2n - N - 1 Subtraktion:= Addition + end-around-carry, d.h. zu der Summe wird das „linke“ Bit der Summe aufaddiert. Vorteil: • zusätzliches Subtrahierwerk überflüssig Nachteile: • keine eindeutige Darstellung der Null (+0, -0) • kein echtes Komplement, da -x + x = 0 Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (8) Vorzeichenbehaftete Zahlen: das Zweier - Komplement b - Komplement: z + z = bn n = Länge der Darstellung von z b = Basis Das Zweier - Komplement ist ein echtes Komplement • -N = 2n - N • -N = Einer - Komplement + 1 • -N = (bitweises Invertieren von N ) + 1 • -N aus [-1, -2n-1] • Es gibt eine eindeutige Darstellung der Null • Der Wertebereich des Zweier - Komplements ist [-2n-1, 2n-1-1] Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (9) Visualisierung des Zweier - Komplements sowie der Addition 0000 1111 1110 -1 0001 -2 1101 0010 0 +1 +2 +3 -3 -4 1100 1011 +4 0100 +5 -5 -6 +6 -7 -8 +7 1010 1001 1000 Vorlesung Informatik 1 WS 2016 0011 T. Ihme 0111 0101 0110 Zahlen und Zeichen (10) Einfache Additions- (Subtraktions-) Regeln x+y: Addition der entsprechenden 2er - Komplemente ergibt korrekte Summe im 2er - Komplement, solange der Wertebereich nicht überschritten wird. x-y: Bilde das 2er - Komplement von y und führe Addition wie oben aus. Konsequenz: Die logische Einfachheit und die daraus resultierende Geschwindigkeit (arithm. Operation erfolgt immer in einem Schritt) führt dazu, dass das Zweier - Komplement in den ALU´s moderner Rechner eingesetzt wird. Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (11) Kriterien für die Qualität der Zahlendarstellung: • Größe des darstellbaren Zahlenbereichs (range) • Genauigkeit (precision) der Zahlendarstellung Diese beiden Kriterien sind prinzipiell unabhängig voneinander. Wissenschaftliche Notation: n = a x rE a - Mantisse (Argument) r - Radix (Basis) E - Exponent (Charakteristik) Floating point - Zahlen in normierter Form: n = (-1)s · a · 2E mit s als Vorzeichenbit und 1 ≤ a < 2 Parameter für mögliche Darstellungen von Floating point - Zahlen: • Anzahl der insgesamt verfügbaren Bits (Worte) • jeweils für Mantisse bzw. Exponent: – Darstellung – Anzahl der verfügbaren Bits (Trade-off!) – Lokalisierung Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (12) Darstellung im IEEE Standard 754: 32 Bits Einfache Genauigkeit: S Vorzeichen der Zahl 0 = “+” 1 = “-” M E’ 23 Bit Mantisse 8 Bit vorzeichenbehafteter Exponent Excess-127 Darstellung Darstellung entspricht: Beispiel mit Einfacher Genauigkeit: ±1,M · 2 E’-127 0 00101000 001010… Darstellung entspricht: 1,001010...0 · 2 64 Bits Doppelte Genauigkeit: S E’ Vorzeichen 11 Bit Excess-1023 Exponent Darstellung entspricht: Vorlesung Informatik 1 WS 2016 T. Ihme M 52 Bit Mantisse ±1,M · 2 E’-1023 -87 Zahlen und Zeichen (13) Truncation: Kappung überzähliger Bits durch • chopping • von Neuman - Runden • runden Kappung überzähliger Bits - Chopping Prinzip • Abschneiden der zu rundenden Stellen Beispiel: 0, b1 b2 b3 b4 b5 b6 Rundung auf 3 Nachkommastellen 0, b1 b2 b3 b4 b5 b6 0, b1 b2 b3 Fehler: • Zwischen 0 ≤ e < 1 der letzten verbleibenden Stelle (hier b3) • unsymmetrischer Fehler Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (14) Kappung überzähliger Bits – Von-Neumann-Runden Prinzip • Wenn zu rundende Stellen ungleich 0 letzte verbleibende Stelle = 1 • Wenn alle zu rundende Stellen gleich 0 letzte verbleibende Stelle = 0 Beispiel: 0, b1 b2 b3 b4 b5 b6 Rundung auf 3 Nachkommastellen a) 0, b1 b2 b3 1 0 1 0, b1 b2 1 b) 0, b1 b2 b3 0 0 0 0, b1 b2 0 Fehler • -1 < e < +1 der letzten verbleibenden Stelle, (hier b3) • symmetrischer Fehler Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (15) Kappung überzähliger Bits – Runden Prinzip • Unverzerrte oder mathematische Rundung • Runden zur nächstgelegenen gekürzten Darstellung • Falls eindeutige Bestimmung der nächstgelegenen gekürzten Darstellung nicht möglich, d.h. erste zu rundende Stelle = 1 und alle anderen zu rundenden Stellen = 0 Runden zur nächsten „geraden“ Zahl Beispiel: 0, b1 b2 b3 b4 b5 b6 Rundung auf 3 Nachkommastellen a) 0, b1 b2 b3 1 0 1 0, b1 b2 b3 + 0, 0 0 1 0, b1 b2 b3 0 1 1 0, b1 b2 b3 b) 0, b1 b2 b3 1 0 0 Fallunterscheidung b1) falls b3 = 0 0, b1 b2 0 b2) falls b3 = 1 0, b1 b2 1 + 0, 0 0 1 Fehler: • -0,5 < e < +0,5 der letzten verbleibenden Stelle (hier b3) • symmetrischer Fehler Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (16) ASCII (bzw, ISO 7-bit) – Zeichencode DEZ HEX Zeichen 00 NUL 00 01 SOH 01 02 STX 02 03 ETX 03 04 EOT 04 05 ENQ 05 06 ACK 06 07 BEL 07 08 BS 08 09 HT 09 0A LF 10 0B VT 11 0C FF 12 0D CR 13 0E SO 14 0F SI 15 10 DLE 16 11 DC1 17 12 DC2 18 13 DC3 19 14 DC4 20 15 NAK 21 16 SYN 22 17 ETB 23 18 CAN 24 19 EM 25 1A SUB 26 1B ESC 27 1C FS 28 1D GS 29 1E RS 30 1F US 31 Vorlesung Informatik 1 WS 2016 DEZ HEX Zeichen 20 SP 32 21 ! 33 22 " 34 23 # 35 24 $ 36 25 % 37 26 & 38 27 ' 39 28 ( 40 29 ) 41 2A * 42 2B + 43 2C , 44 2D 45 2E . 46 2F / 47 30 0 48 31 1 49 32 2 50 33 3 51 34 4 52 35 5 53 36 6 54 37 7 55 38 8 56 39 9 57 3A : 58 ; 3B 59 3C < 60 3D = 61 3E > 62 3F ? 63 T. Ihme DEZ 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 HEX 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F Zeichen @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ DEZ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 HEX 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F Zeichen ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL Zahlen und Zeichen (17) Erweiterungen des ASCII-Codes: • ISO 646 (Latin-1) • ISO 8859 (code pages) – ISO 8859-1 (Latin-1, Westeuropa) – ISO 8859-2 (Latin-2, Zentral- und Osteuropa, slawische Sprachen) – ISO 8859-3 (Latin-3, Südeuropa, z.B. türkisch, maltesisch, Esperanto) – ISO 8859-4 (Latin-4, Nordeuropa, z.B. baltische Sprachen) – ISO 8859-5 (Kyrillisch, z.B. Bulgarisch, Russisch, Serbisch) – ... • ISO 10646 (Unicode) Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (18) Unicode • 65,536 code points • enthält Latin-1 als Untermenge (336 code points) • weitere Sprachenbeispiele: – griechisch (144), kyrillisch (256), armenisch (96), hebräisch (112) • code points für Sonderzeichen: – z.B. Indizes (48), Währungssymbole (48), math. Symbole (256) • Symbole für chinesisch, japanisch, koreanisch • 6,400 code points frei definierbar für den lokalen Gebrauch • steigende Akzeptanz, wird schon unterstützt von einigen Programmiersprachen (Java) und Betriebssystemen (Windows NT … Windows 8, Linux, Mac OSX) Vorlesung Informatik 1 WS 2016 T. Ihme Zahlen und Zeichen (19) Beispiele für kodierte Information in einem 32-Bit Wort Vorlesung Informatik 1 WS 2016 T. Ihme