Grundlagen der Informatik I Informationsdarstellung Einführung in die Informatik, Gumm, H.-P./Sommer, M. Themen der heutigen Veranstaltung 1. ASCIi Code 2. Zeichenketten 3. Logische Operationen 4. Zahlendarstellung 5. Arithmetische Operationen auf Binärzahlen 6. Lernziele Page 2 ASCII-Code Darstellung von Text: Alphabet und Satzzeichen werden in Bitfolgen codiert. Mit 26 Klein- und 26 Großbuchstaben, sowie Satzzeichen (Punkt, Komma, etc.), Spezialzeichen z.B. (+, -, %, &,…) hat eine normale Schreibmaschiene knapp 100 Zeichen. Dazu kommen nicht druckbare, Steuerzeichen, wie Wagenrücklauf (CR= carriage return) oder Tabulator. Mit einer 7 Bit Darstellung kan man 128 Zeichen kodieren. Man erstellt deswegen eine Tablle die jedem Zeichen einen (siebenstelligen) Bitcode zuordne. Die ASCII Tablle nummeriert die 128 Zeichen der Reihenfolge nach durch und ordnet jedem Zeichen den, seiner Position in der Tabelle entsprechenden Binärcode zu. Diese Kodierung nennt man ASCII für American Standard Code for Information Interchange. Zeichen ASCII A 65 B 66 a 97 b 98 z 122 ? 63 CR 13 Page 3 ASCII Tabelle Page 4 Zeichenketten Zeichenketten werden repräsentiert indem die Codes der einzelnen Zeichen aneinander gereiht werden. Eine solche Folge nennt man auch nach dem englischen Wort ‘string’. Bsp: ‘Hallo Welt’ Zeichenfolge: H, a, l, l, o, _, W, e, l, t Leerzeichen = _ Mit Hilfe der ASCII Tabelle erhält man: 072 097 108 108 111 032 087 101 108 116 Bzw. In Hexadezimaler Schreibweise: 48 61 6c 6c 6f 20 57 65 6c 74 Bzw. Als Bitfolge: 01001000 01100001 01101100 01101100 01101111 00100000 01010111 01100101 01101100 01110100 Page 5 Logische Werte Logische Werte, sogenannte Wahrheitswerte WAHR und FALSCH (engl. TRUE bzw. FALSE) werden häufig durch die Buchstaben T und F abgekürzt, bzw. 0 und 1. Auf diesen Werten sind die booleschen Verknüpfungen: NOT (Negation bzw. Komplement) AND (Konjunktion) OR (Disjunktion) XOR (exclusives OR) festgelegt: NOT 0 1 1 0 AND 0 1 OR 0 1 XOR 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 Page 6 Logische Werte (cont.) Bitketten werden bei arithmetischen Operationen auch als Folge von logischen Werten interpretiert. Die logische Verknüpfung solcher Bitkettten wird als bitweises Verknüpfen der entsprechenden Kettenelemente definiert. Z.B.: Komplementberechnung (NOT) der Bitfolge: NOT 0111 0110 = 1000 1001 Bitweise Konjunktion von 0111 0110 AND 1110 1011 = 0110 0010 Untereinanderschreiben und bitweise Verknüpfung: 0111 0110 AND 1110 1011 --------------------0110 0010 Page 7 Zahlendarstellung Auch Zahlen können durch Bitfolgen dargestellt werden. Im ASCII code würde z.B. die Zahl ‘4711’ durch die ASCII codes 52, 55, 49, 49 dargestellt werden. Dabei wuerden fuer jede Ziffer 7 bzw. 8 Bits verwendet werden. Eine effizientere Darstellung ergibt sich bei einer eins zu eins Kodierung von Zahlen und Bitfolgen. Wenn man nur Bitfolgen einer festen Länge N betrachtet, so kann man 2N viele Zahlen darstellen: gebräuchliche Werte für N sind 8, 16, 32 oder 64. Man repräsentiert durch die Bitfolgen der Länge N: - Natürliche Zahlen von 0 bis 2N - Ganze Zahlen zwischen -2N-1 und 2N-1 -1 - Intevalle reeler Zahlen mit begrenzter Genauigkeit Page 8 Binärdarstellung Natürliche, positive, ganze Zahlen können mit N Bits dargestellt werden. Man deckt dann den Bereich von 0 bis 2N-1 ab und kann insgesammt 2N viele Zahlen repräsentieren. Dabei entspricht die Bitfolge der Binärdarstellung der darzustellenden natürlichen Zahl (ohne Vorzeichen). Dezimalzahlen als Koeffizienten von Zehnerpotenzen: 4711 = 4 x 103 + 7 x 102 + 1 x 101 + 1 x 100 = 4 x 1000 + 7 x 100 + 1 x 10 + 1 x 1 Im Binärsystem geht es genauso jedoch hat man statt der Ziffern 0…9 nur 0 und 1: Binärzahlen als Koeffizienten von Potenzen von 2. Die Bitfolge 1101 den Zahlenwert: 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 13 Dies kan auch durch die Gleichung (1101)2 = (13)10 ausgedrückt werden wobei der Index das Zahlensystem angibt. Mit 3 Bits können wirt die Zahlen 0 bis 7 darstellen, mit 4 Bits die Zahlen 0 bis 15, mit 8 Bits die Zahlen von 0 bis 255 mit 16 Bits die zahlen von 0 bis 65535 und mit 32 Bits die Zahlen von 0 bis 4 294 967 295 Page 9 Arithmetische Operationen Addition im Binärzahlensystem erfolgt analog zur Addition von Dezimalzahlen. Ein an einer Ziffernposition entstehender Übertrag wird zur nächsthöheren Ziffernposition addiert. Ein Übertrag entsteht immer dann, wenn bei der Addition zweier Ziffern ein Wert entsteht der größer oder gleich dem Basiswert ist. Bei Binärzahlen passiert das bereits wenn 1 + 1 addiert wird. Es ensteht ein Übertrag von 1 in die nächst höhere Ziffernposition. Beispiel Addition von 210 + 310 = 510 = 0102 + 0112 = 1012 010 011 1 101 Page 10 Arithmetische Operationen (cont.) Bei dem vorangegangenen Beispiel wurde eine 3-stellige Kodierung verwendet, da das resultierende Ergebnis 3-stellig ist. Hätte man nur mit 2-stelliger Kodierung gearbeitet wäre ein Fehler entstanden. 102 + 112 = 012 bzw. 210 + 310 = 110 Dieser Fehler ensteht offenbar durch den Übertrag (engl. carry) an der höchsten Ziffernposition in eine ‘nicht existente’ Position. Da das Ergebnis bei dieser Operation nur als 2-stellig zugelassen wird, wird der Übertrag einfach abgeschnitten und auf dem 2stelligen Ergebnis weitergerechnet. Der Prozessor zeigt solche Fehler an in dem das Carry Flag gesetzt wird. Es obligt dem Programmierer bei solchen Operationen darauf zu achten, das a) Ergebnisse von Operationen immer korrekt darstellbar sind b) Das Carry Flag abzurufen, um den Fehler zu bemerken. Page 11 Lernziele Den ASCII Code erklären und verwenden können Logische Operationen NOT, AND, OR, XOR erklären und anwenden können. Binärzahen und Dezimalzahlen als Koeffizienten der Basiszahlen beschreiben können. Arithmetische Operationen auf Binärzahlen (Addition) erklären und anwenden können. Page 12