Ein Code ist im eigentlichen Sinn nichts anderes, als eine Vorschrift, wie Informationen bzw. Signale oder Zeichen ( in Form von Texte, Bilder, Musik, usw.) in etwas anderes abgebildet werden und damit auch eindeutig wieder zurückgebildet werden können. Beispiele von Code könnte die Brailleschrift (Blindenschrift) sein.
Für die Kommunikation mit dem Computer werden die Informationen (Signale) ins Binäre übersetzt. Der Vorteil von Codes ist, dass wir dadurch Informationen digital, das heisst mithilfe des Computers und so viel zeitsparender und exakter verarbeiten können. Wichtig ist hierbei natürlich, dass die Übersetzung eindeutig in beide Richtungen (ins Binäre und zurück), funktioniert.
In dieser Einführung schauen wir uns das Prinzip des Codes anhand des ASCII-Codes und des Unicodes an, die es beide ermöglichen, Texte (also Zeichen und Buchstaben) ins Binäre zu übersetzen und umgekehrt.
Da das Speichern von Information im Computer binär (mit Null und Eins) aufgebaut ist, braucht es irgendeine Art Übersetzungscode, um Texte, Bilder, Töne oder ganze Filme darauf abspeichern zu können. Für das Speichern von Texten wurde 1963 erstmals der sogenannte ASCII-Code (American Standard Code for Information Interchange) erfunden. Der ASCII-Code ist im Wesentlichen nichts anderes als eine Tabelle, die jedem Zeichen im englischen Alphabet einen binären Zahlenwert zuordnet. Wenn ein Text auf einem Datenträger abgespeichert werden soll, wird entsprechend jeden Zeichens (inklusive Leerzeichen und Satzzeichen) durch den jeweiligen achtstelligen binären Code ersetzt. Da man mit der ASCII-Tabelle jedem Zeichen in einem Text genau 8 Bit (also 1 Byte) zuordnet, gibt es nur 256 verschiedene Zeichen, die man auf diese Weise abspeichern kann.
Ursprünglich (in der ersten offiziellen Version von ASCII) wurden die Zeichen mit nur 7 Bit verschlüsselt (128 verschiedene Zeichen). Das achte Bit wurde zuerst als Kontrollbit verwendet und später dazu genommen, um die Anzahl möglicher Zeichen zu erweitern. Die hier vorgestellte Version ist eine 8 Bit Variante mit erweitertem Zeichensatz (Mircrosoft). ascii_3.jpg
Als Beispiel hier „Informatik!“ zuerst ins Dezimale, oder noch besser direkt ins Binäre übersetzt, mit Hilfe des ASCII-Codes.
| Text | I | N | F | O | R | M | A | T | I | K | ! |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Dezimalzahl | 73 | 78 | 70 | 79 | 82 | 77 | 65 | 84 | 73 | 75 | 33 |
| Binärzahl | 0100 1001 | 0100 1110 | 0100 0110 | 0100 1111 | 0101 0010 | 0100 1101 | 0100 0001 | 0101 0100 | 0100 1001 | 0100 1011 | 0010 0001 |
Ausgeschrieben würde „Informatik!“ wie folgt aussehen: 0100100101001110010001100100111101010010010011010100000101010100010010010100101100100001
Jedes Zeichen benötigt genau 8 Bit = 1 Byte Speicherplatz, falls nicht noch sonstige Formatierungen an diesem Textstück vorgenommen werden. Dann können wir annehmen, dass dieser Text („Informatik!“), der aus 11 Zeichen besteht, genau 88 Bit = 11 Byte Speicherplatz benötigen.
Auftrag 1
Studieren Sie den folgenden Ausschnitt der ASCII-Tabelle und übersetzen Sie den Text „Informatik macht Spass“ ins Binäre.
Der ASCII-Code unterstützt leider nicht jedes beliebige Alphabet (jede beliebige Sprache), das es gibt. Dies liegt daran, dass der ASCII-Code 1963 für das englische Alphabet entwickelt worden ist. In anderen Sprachen gibt es andere Sonderzeichen oder gar Buchstaben als in diesem ursprünglichen ASCII – Code festgelegt. Somit wurden aufgrund der Bedürfnisse der anderen Sprachen später weitere ähnliche Codes entwickelt, wie zum Beispiel der Unicode (im Jahr 1991), mit dem alle Schriftzeichen allermeisten bekannten Sprachen und Alphabete (wie Chinesisch, Arabisch, Hebräisch, …) dargestellt werden können. Damit das funktioniert, braucht man im Unicode für gewisse Zeichen mehr als 8 Bit. Deswegen haben Texte, die mit Unicode codiert werden, in der Regel auch einen etwas höheren Speicherbedarf.
Auftrag 2
Lösen Sie das folgende Quiz!
Auftrag 3
Lösen Sie diese Aufgabe auf OneNote, dort finden Sie auch eine ASCII-Tabelle. Der Satz, der übersetzt werden soll, lautet: «Heute haben wir Schule!»
Zusatzauftrag Z1
Zusatzauftrag Z2
Zusatzauftrag Z3
Eine Überlegung ist es wert…
Wenn wir einen Text mit dem ASCII-Code codieren, dann braucht er pro Zeichen eine fixe Speichergrösse. Um das Ganze zu optimieren, um Speicherplatz zu gewinnen. Überlegen Sie sich, ob Sie ein Verfahren finden, um effizienter Text speichern zu können. Nutzen Sie den Tipp unten. Suchen auf dem Netz ist erlaubt.
Tipp: Sie könnten sich zum Beispiel einmal überlegen, ob jeder Buchstabe in einem Text immer gleich häufig vorkommt wie jeder andere, oder ob es irgendeine Art Verteilung gibt. Notieren Sie die Erkenntnisse kurz auf OneNote.