Binärdarstellung von Information Klaus Becker 2012 2 Binärdarstellung von Information 3 Teil 1 Information und Daten 4 Problem - Fußballergebnisse Zugereister: Wie hat eigentlich der 1. FC Kaiserslautern gespielt? Einheimischer: Das sieht man doch! 5 zu 2 in Köln. Zugereister: Wo sieht man das? Einheimischer: Da oben im Hochhaus neben dem Betze wohnen zwei Witzbolde. Die teilen uns das Ergebnis immer gleich mit. Zugereister: Aha, praktisch! Dialog in Kaiserslautern Aufgabe 1 (siehe I:1.2.1.1) (a) Welche Information wird hier dargestellt, welche nicht? Wie wird die Information dargestellt? (b) Könnte man das von den beiden Bewohnern der oberen Stockwerke entwickelte Verfahren so ergänzen, dass weitere, bisher noch nicht dargestellte Information auch noch mit Fensterbeleuchtungen dargestellt wird? Was müsste ein Zugereister wissen, um die Fensterbeleuchtung des Hochhauses richtig deuten zu können und damit die gewünschte Information gewinnen zu können? Aufgabe 2 (siehe I:1.2.1.1) Neuerdings sind unzuverlässige Mieter im Hochhaus eingezogen. Die Hausverwaltung hat beschlossen, die Zimmer während der Fußballspiele des 1.FCK automatisiert zu beleuchten. Ein Computerprogramm steuert dabei die Beleuchtung der Zimmer. Das Programm wandelt hierzu Spielzustände in fünf 8er-Blöcke bestehend aus Nullen und Einsen um. So wird z.B. der Spielzustand "4:3" so dargestellt: 10100111 10100100 11100111 00100100 00100111 (a) Versuche mit Hilfe der Animation herauszufinden, wie die 0-1-Darstellung zu verstehen ist. (b) Wie werden die Spielzustände "0:2" bzw. "6:1" entsprechend dargestellt? 5 Information und Daten Information muss immer in geeigneter Weise dargestellt werden, um sie als Daten maschinell weiterverarbeiten zu können. Aus Daten gewinnt man erst dann Information, wenn sie gedeutet werden können. "Kaiserslautern gewinnt in Köln! Kaiserslautern erzielt 5 Treffer, Köln nur 2." Information Darstellen Deuten Daten Live-Ticker ... 2:5 ... 10100111 10100100 11100111 00100100 00100111 6 Binärdarstellung von Information "Die Heimmannschaft hat 2, die Gastmannschaft 5 Tore geschossen." 2:5 00000011 00011111 Information "problemnahe" Darstellung mit Zeichen "maschinennahe" Darstellung mit Bits technische Realisierung mit einem Zweizustandssystem 7 Binärdarstellung von Information Technische Systeme, die man zur Darstellung von Information nutzt, verwenden sehr oft Systemgrößen, die nur zwei Zustände einnehmen können: an / aus; geladen / ungeladen; Strom fließt / Strom fließt nicht; magnetisiert / unmagnetisiert. Solche Zweizustandssysteme sind technisch meist einfacher herzustellen als Systeme mit mehr Zuständen. Auch in Computern werden solche Zweizustandssysteme zur Darstellung von Information genutzt. Codierung der Zustände mit 0 und 1: an: 1 aus: 0 00000011 00011111 2 Byte 1 Byte = 8 Bit 1 Kilobyte (KB) = 1000 Byte 1 Megabyte (MB) = 1000 KB 1 Gigabyte (GB) = 1000 MB Unter einem Bit versteht man eine Einheit zur Informationsdarstellung, die nur zwei Werte annehmen kann: 0 und 1. Unter einem Byte versteht man eine Einheit aus 8 Bits. 8 Übungen Aufgabe 1 Wie viele Stockwerke würde das Hochhaus in Kaiserslautern benötigen, um mit dem angedeuteten Verfahren einen kompletten Fußball-Spieltag darzustellen? Wie viele Bytes müsste man darstellen? Aufgabe 2 Könnte man analog auch die Ergebnisse von Handball- oder Basketballspielen darstellen? Wäre das geschickt? Wie viele Bytes würde man hier zur Darstellung eines kompletten Spieltags benötigen? 9 Teil 2 Binärdarstellung von Zahlen 10 Problem - Gefängnisausbruch Wicki sitzt mal wieder im Gefängnis seine/ihre Strafe ab. Kari - die Gefängniswärterin - beobachtet seit Tagen Ungewöhnliches im Gefängnishof: Jeden Abend werden nur einge der Lampen eingeschaltet. Welche, das entscheidet der Hausmeister. Irgendetwas ist hier faul! Kari hat einen Verdacht und alarmiert Palu, den Gefängnisleiter: "Der Hausmeister und Wicki kennen sich aus ihrer gemeinsamen Schulzeit. Ich vermute, dass der Hausmeister mit den Lampen Wicki den Tagescode am Haupttor mitteilen will." Palu versucht, Kari zu beruhigen: "Aber das geht doch gar nicht. Mit den 7 Lampen kann man doch unsere 100 verschiedenen Codezahlen 0-99 nicht anzeigen!" Aufgaben: Bearbeiten Sie die Aufgaben auf I:1.2.2.1. 11 Dualsystem [01010011]2 = 0*128 + 1*64 + 0*32 + 1*16 + 0*8 + 0*4 + 1*2 + 1*1 = 83 Das Zweiersystem bzw. Dualsystem ist ein Stellenwertsystem, bei dem Zahlen nur mit Hilfe der beiden Ziffern (0 und 1) gebildet werden. Die Stellenwerte der Ziffern werden dabei mit Hilfe der Potenzen der Basiszahl 2 festgelegt: 20 = 1, 21 = 2, 22 = 4, 23 = 8, ... 12 Problem - Gefängnisausbruch Wicki und der Hausmeister haben bemerkt, dass sie unter verschärfter Beobachtung stehen. Anstatt Lampen auszutauschen, erneuert der Hausmeister jetzt jeden Tag das Graffiti an der Gefängnismauer. Irgendetwas will er Wicki damit wohl mitteilen - wahrscheinlich den Zahlencode. Aufgaben: Bearbeiten Sie die Aufgaben auf I:1.2.2.3. 13 Hexadezimalsystem [002C]16 = 0*4096 + 0*256 + 2*16 + 12*1 = 0 + 0 + 32 + 12 = 44 Das Sechzehnersystem bzw. Hexadezimalsystem ist ein Stellenwertsystem zur Basiszahl 16, bei dem alle Zahlen mit Hilfe von 16 Zeichen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F dargestellt werden. Dual- und Hexadezimalsystem 14 Da Bitmuster im Dualsystem sich nur schwer lesen lassen und auch viel Platz beanspruchen, verwendet man oft eine Kurzschreibweise, die auf dem Hexadezimalsystem basiert: [00000000]2 = [00]16 0 0 [00101100]2 = ... ... 0*128 + 0*64 + 1*32 + 0*16 + 1*8 + 1*4 + 0*2 + 0*1 = [00101100]2 = [2C]16 2 C ... ... (0*8 + 0*4 + 1*2 + 0*1)*16 + (1*8 + 1*4 + 0*2 + 0*1)*1 = 2*16 + 12*1 = [2C]16 [11111111]2 = [FF]16 F F 15 Übungen Aufgabe 1 Einheimischer: "Wir kennen uns doch. Sie erinnern sich sicherlich noch, neulich in Kaiserslautern ..." Zugereister: "Ja stimmt." Einheimischer: "Übrigens, hier in Trier spielt man Basketball." Zugereister: "Und, wie ist das letzte Spiel ausgegangen?" Einheimischer: "Sieht man doch, zu Hause knapp gegen Berlin gewonnen." Zugereister: "Tatsächlich, ich glaube 84 zu 81." Aufgaben: Bearbeiten Sie Aufgabe 1 auf I:1.2.2.5. Dialog in Trier 16 Übungen Aufgabe 2 Bei einer Binäruhr wird die Uhrzeit nicht der üblichen Dezimalschreibweise, sondern mit Dualzahlen dargestellt. Binäruhr Aufgabe 3 Bei einer Hexuhr wird die Uhrzeit mit Hexadezimalzahlen dargestellt. Aufgaben: Bearbeiten Sie Aufgabe 2 und 3 auf I:1.2.2.5. Hexuhr 17 Teil 3 Binärdarstellung von Zeichen 18 Problem - Gefängnisausbruch Wicki sitzt nach wie vor seine/ihre Strafe ab. Bis jetzt gab es keine Gelegenheit, aus dem Gefängnis auszubrechen. Die Lage hat sich auch noch verschlechtert. Das Haupttor ist jetzt durch ein neues System abgesichert. Das Tor öffnet sich nur, wenn man das richtige Geheimwort an einem Terminal eingibt. Kari - die Gefängniswärterin - befürchtet, dass auch das neue Sicherungssystem geknackt werden kann. Kari hat die Laternenbeleuchtung der letzten Tage mitprotokolliert: Aufgaben: Bearbeiten Sie die Aufgaben auf I:1.2.3.1. 01000001 01000010 01001001 01001110 01000100 01001001 01000101 01000110 01010010 01000101 01001001 ... ASCII-Code 19 @ 0100 0000 40 64 P 0101 0000 50 80 A 0100 0001 41 65 Q 0101 0001 51 81 B 0100 0010 42 66 R 0101 0010 52 82 C 0100 0011 43 67 S 0101 0011 53 83 D 0100 0100 44 68 T 0101 0100 54 84 E 0100 0101 45 69 U 0101 0101 55 85 F 0100 0110 46 70 V 0101 0110 56 86 G 0100 0111 47 71 W 0101 0111 57 H 0100 1000 48 72 X 0101 1000 58 88 87 I 0100 1001 49 73 Y 0101 1001 59 89 J 0100 1010 4a 74 Z 0101 1010 5a 90 K 0100 1011 4b 75 [ 0101 1011 5b 91 L 0100 1100 4c 76 \ 0101 1100 5c 92 93 M 0100 1101 4d 77 ] 0101 1101 5d N 0100 1110 4e 78 ^ 0101 1110 5e O 0100 1111 4f 79 - 0101 1111 5f 94 Quelle: http://de.selfhtml.org/inter/zeichensaetze.htm 95 ASCII-Code (Abk. für American Standard Code for Information Interchange): Weit verbreiteter Code zur Darstellung von Ziffern, Buchstaben und Sonderzeichen. 20 Problem - Währungssymbole Hier siehst du den Wert eines US-Dollars in unterschiedlichen Währungen. 1$: 0.77€ 78,10¥ 31.18Я 1149.5₩ 3.78₪ Kennst du alle hier vorkommenden Währungssymbole? Wenn nicht, dann bearbeite die folgende Aufgabe. Aufgaben: Bearbeiten Sie die Aufgaben auf I:1.2.3.6. siehe auch: http://software.ellerton.net/txt2bin/ 0000000000110001 0000000000100100 0000000000111010 0000000000001010 0000000000110000 0000000000101110 0000000000110111 0000000000110111 0010000010101100 0000000000001010 0000000000110111 0000000000111000 0000000000101110 0000000000110001 0000000000110000 0000000010100101 0000000000001010 0000000000110011 0000000000110001 0000000000101110 0000000000110001 0000000000111000 0000010000101111 0000000000001010 0000000000110001 0000000000110001 0000000000110100 0000000000111001 0000000000101110 0000000000110101 ... ... 0010000010101001 0000000000001010 0000000000110011 0000000000101110 0000000000110111 0000000000111000 0010000010101010 Unicode 21 ا, ب, ت, ث, ج, ح, خ, د, ذ, ر, ز, س, ش, ص, ض, ط, ظ, ع, غ, ف, ق, ك, ل, م, ن, ه, و, ي xa<f(x)f(a)< 06232-656-0 Andere Sprachen, andere Alphabete! Jede Sprache benutzt einen bestimmten Zeichensatz, um die Wörter der Sprache darzustellen. Wechselt man, die Sprache, so muss man gegebenenfalls spezielle Sonderzeichen (wie ö, ø, œ) oder "andere" Alphabete benutzen (s. o.). Uniode: Internationaler Standard, mit dem alle bekannten Textzeichen in einem Zeichensatz zusammengefasst werden sollen. 22 Unicode 260E 0010 0110 0000 1110 Uniode: Internationaler Standard, mit dem alle bekannten Textzeichen in einem Zeichensatz zusammengefasst werden sollen. Ursprünglich war der Unicode als 2-Byte-Code konzipiert, so dass man insgesamt 65.536 Zeichen darstellen konnte. Inzwischen gibt es auch eine 4-Byte-Variante mit der Möglichkeit, die Codierung weiterer Zeichen zu standardisieren. UTF (Abkürzung für Unicode Transformation Format) ist ein Verfahren zur Abbildung von Unicode-Zeichen auf Byte-Folgen. UTF-8 benutzt 8-Bit-Einheiten (Bytes) zur Darstellung von Zeichen des Unicode-Zeichensatzes. Je nach Zeichen kann diese Darstellung 1, 2, 3 oder 4 Bytes umfassen. UTF-8 benutzt ein ausgefeiltes Verfahren, um Texte, die auf dem lateinischen Alphabet basieren, mit möglichst wenig Bytes darzustellen. Alle Zeichen des ASCIIZeichensatzes werden wie in der erweiterten ASCII-Code-Tabelle festgelegt kodiert und benötigen daher nur ein Byte zur Darstellung. Umlaute und viele andere Sonderzeichen werden mit 2 Bytes kodiert. 23 Exkurs: Zeichensätze in HTML <?xml version="1.0" encoding="iso-8859-1" ?> ... <head> <title>Text</title> </head> <body> <h1>Viele Grüße!</h1> </body> </html> HTMLDarstellung <?xml version="1.0" encoding="iso-8859-5" ?> ... <head> <title>Text</title> </head> <body> <h1>Viele Grüße!</h1> </body> </html> Beachte: Die Darstellung im Browser hängt von verschiedenen Faktoren ab: encoding-Angabe im Quelltext; Codierung, die beim Abspeichern des Quelltextes benutzt wurde; Einstellungen im Browser. Ansicht im Browser 24 Exkurs: Zeichensätze in HTML Ansicht im Hex-Editor 25 Exkurs: Zeichensätze in HTML Ansicht im Hex-Editor Exkurs: Zeichensätze in HTML 26 ... 11111100 11011111 ... 56 69 65 6C 65 20 47 72 iso-8859-1 ... 11011111 ... 11111100 ... FC DF 65 21 iso-8859-5 ß ü Viele Grüße! ... 11011111 ... 11111100 ... Viele Grќпe! ќ п 27 Übungen: Experimente m. d. Hexeditor Aufgaben: siehe I:1.2.3.4 28 Übungen Paul: Weißt du auch, was die Perlen bedeuten?. Pia: Keine Ahnung. Sags mir doch. Paul: Nein, das muss du selbst rausfinden. Kleiner Tipp: ASCII-Code. Pia: Aha, sehr romantisch. Was hat Paul wohl mit der Perlenkette dargestellt? Tipp: ASCII-Code 29 Teil 4 Binärdarstellung von Bildern 30 Pixelgrafik Ausschnittsvergrößerung Eine Pixelgrafik (man sagt auch Rastergrafik) setzt sich aus sehr vielen Pixeln (das sind die einzelnen Bildelemente / Rasterzellen) zusammen. 31 Aufgabe Was wird hier dargestellt? Haben Sie schon eine Vermutung? Was bedeuten wohl die einzelnen Angaben im Quelltext? Kopieren sie den Quelltext und speichern sie ihn mit einem Texteditor (z. B. Notepad++) unter einem geeigneten Namen mit der Dateiendung "pbm" ab (z. B. bild1.pbm). Öffnen sie dann diese Datei mit einem Bildbetrachtungsprogramm (z. B. IrfanView). Erstellen sie analog den Quelltext für eine Schwarz-Weiß-Grafik. Kontrollieren sie auch, ob die Grafik ihren Vorstellungen entspricht. 32 pbm-Format pbm steht für portable bitmap. Die erste Zeile P1 gekennzeichnet eine bestimmte Variante des pbmFormats, bei der sämtliche Bildinformationen im Klartext (ASCII-Code) hingeschrieben werden. Die Angaben 24 36 in der zweiten Zeile legen die genaue Aufteilung der Pixel in Spalten und Zeilen (hier 24 Spalten und 36 Zeilen) fest. Es folgen die einzelnen Bits zur Darstellung der Pixel. 33 Aufgabe Was bedeuten wohl hier die einzelnen Angaben im Quelltext? Wie könnte man den hellen Fleck auf der Nase des Esels retouchieren? Skizzieren sie ein Bild mit 16 Grauwerten der Größe 4 3. Erstellen sie analog den Quelltext zu diesem Bild. Teste sie, ob das Resultat der Vorab-Skizze entspricht. 34 pgm-Format pgm steht für portable graymap. Die erste Zeile P2 gekennzeichnet eine bestimmte Variante des pgm-Formats. Die Angaben 24 36 in der zweiten Zeile legen die genaue Aufteilung der Pixel in Spalten und Zeilen (hier 24 Spalten und 36 Zeilen) fest. Die Zahl 255 legt die Anzahl der Graustufen fest, die also hier mit Zahlen von 0 bis 255 beschrieben werden. Es folgen die einzelnen Bits zur Darstellung der Pixel. 35 Aufgaben Informieren sie sich zunächst über "additive Farbmischung", z. B. bei Wikipedia. Experimentieren sie anschließend mit einem Farbmischer. Fast jedes Bildbearbeitungsprogramm stellt einen solchen Farbmischer bereit. Sie können sich aber auch ein spezielles Programm hierzu besorgen (siehe I:1.2.4.4). Wie viele Farben kann man hier darstellen? Was bedeutet die Angabe #BCE12B? Analysieren sie den Quelltext zur dargestellten Grafik. Erstellen Sie analog eine eigene Grafik. 36 ppm-Format ppm steht für portable pixmap. Die erste Zeile P3 gekennzeichnet eine bestimmte Variante des ppm-Formats, bei der sämtliche Bildinformationen im Klartext (ASCII-Code) hingeschrieben werden. Die Angaben 3 4 in der zweiten Zeile legen die genaue Aufteilung der Pixel in Spalten und Zeilen (hier 3 Spalten und 4 Zeilen) fest. Die Zahl 255 legt die Anzahl der Farbstufen fest, die also hier mit Zahlen von 0 bis 255 beschrieben werden. Die folgenden Zahlentripel beschreiben die Farben der einzelnen Pixel. Diese sind hier - der besseren Lesbarkeit wegen - im Quelltext genauso angeordnet wie in der beabsichtigten Bilddarstellung. 37 Speicheraufwand Der Speicherbedarf lässt sich wie folgt abschätzen: Die Grafik setzt sich aus 24*36 = 864 Pixeln zusammen. Für jedes Pixel wird 1 Bit benötigt. Als beträgt der Speicherbedarf etwa 864 : 8 = 108 Byte. Der berechnete Wert stimmt nicht ganz, da auch die Angaben "P1" und "24 36" abgespeichert werden. Zur Überprüfung des berechneten Werts muss die Grafik erst in das binäre pbmFormat überführt werden. Dies kann man z. B. mit dem Bildbetrachtungsprogramm IrvanView erledigen. vgl. www.inf-schule.de 38 Aufgaben Schätzen sie analog den Speicherbedarf des Esel-Bildes ab. Die Anzahl der Pixel bei Farbfotos hängt von der benutzten Kamera und den getroffenen Einstellungen ab. Viele Digitalkameras bieten das folgende Pixelformat an: 2560 x 1920. D. h., das Bild besteht aus 1920 Pixelzeilen mit jeweils 2560 Pixeln pro Zeile. Schätzen sie ab, wie viele Bytes zur Darstellung eines Farbfotos benutzt werden, wenn man das ppm-Format benutzt. Überprüfen sie den errechneten Wert, indem sie das Farbfoto in das ppm-Format umwandeln und sich die Dateigröße anzeigen lassen.