1.2. Darstellung von Zeichen#
Zur Speicherung und Darstellung von Text sind Zeichen notwendig. Diese Umfassen die Buchstaben des Alphabets, Ziffern als auch Sonderzeichen. In dieser Aufgabe wird der Umgang mit der Zeichendarstellung vertieft.
Grundlagen und Beispiele#
Die einfachste Möglichkeit der Zahlendarstellung erfolgt über die Kodierung mit einer Tabelle, hier der ASCII-Tabelle. Dabei wird jeder 7-Bit-Zahl ein Zeichen zugewiesen.
Beispiele:
Zahl 5210 wird abgebildet auf das Zeichen
4
Zahl 0x4A=4A16 steht für den Buchstaben
J
Die Speicherung von Text bzw. Zeichenketten erfolgt in diesem Format, also als eine Reihe von 7-Bit-Zahlen. Aus technischen Gründen werden aber immer 8-Bit, also ein Byte, pro Zeichen verwendet.
Beispielspeicherung, wobei die Zahlenwerte in der Hexadezimaldarstellung angegeben sind:
Zeichen: C C E = C o m p . . .
Zahl: 43 43 45 20 3D 20 43 6F 6D 70 2E 2E 2E
Bei der visuellen Darstellung von Text werden die Steuerzeichen, wie “neue Zeile” (CR
, engl. current return, 0x0D) oder “Tabulator” (HT
, engl. horizontal tab, 0x09), wichtig. Diese weisen das Darstellungsprogramm an eine entsprechende Fromatierung vorzunehmen. Reine Textdateien können z.B. mit einem Texteditor dargestellt und bearbeitet werden.
Folgendes Beispiel verdeutlicht die visuelle Darstellung von Text. Die Zeilenumbrüche in der gespeicherten Zahlenfolge ergibt sich nur durch die Darstellung in diesem Dokument. Eigentlich wäre es eine einzelne Zeile.
Gespeicherte 8-Bit-Zahlenfolge.
43 43 45 20 62 65 64 65 75 74 65 74 3A 20 0A 09 2D 20 43 6F 6D 70 75 74 61 74 69 6F 6E 61 6C 20 0A 09 2D 20 43 69 76 69 6C 20 0A 09 2D 20 45 6E 67 69 6E 65 65 72 69 6E 67
Darstellung als visueller Text, z.B. in einem Texteditor. Dieser interpretiert die obigen Zahlen und stellt Zeichen dar und befolgt Anweisungen, wie z.B. “neue Zeile”:
CCE bedeutet:
- Computational
- Civil
- Engineering
Aufgabenstellung#
Aufgabenteil A#
Dekodieren Sie folgende Zahlenfolge anhand der ASCII-Tabelle.
43 6F 6D 70 75 74 65 72 20 75 6E 64 20 46 65 75 65 72
Lösungshinweise#
Es sind drei Worte, wovon zwei thematisch zum Lehrstuhl Computational Civil Engineering passen.
Lösungsvorschlag#
Die hier codierte Zeichenfolge lautet: Computer und Feuer
.
Aufgabenteil B#
Dekodieren Sie folgende Zahlenfolge und stellen Sie diese so dar, wie ein Texteditor es tun würde. Nicht sichtbare Zeichen können Sie beispielsweise mit ↵
, ⇥
oder ␣
darstellen.
54 4F 44 4F 3A 0A 09 2D 20 4D 69 6C 63 68 0A 09 2D 20 4B 61 66 66 65 65
Lösungshinweise#
Es sind drei Zeilen, wobei die Mischung der letzten beiden ein leckeres Getränk ergeben.
Lösungsvorschlag#
Ein Texteditor würde den Inhalt wie folgt visuell darstellen:
TODO:
- Milch
- Kaffee
Mit einer Darstellung der nicht-sichtbaren Zeichen sehe es so aus:
TODO:↵
⇥ -␣Milch↵
⇥ -␣Kaffee
Aufgabenteil C#
Schauen Sie sich die folgenden beiden Dateien an. Nutzen Sie hierzu zunächst einen Texteditor ihrer Wahl – die meisten Betriebssysteme bringen von Haus aus einen mit. Übrigens, der Inhalt ist ein Zitat eines berühmten und für diese Vorlesung wichtigen Bauingenieurs.
Beantworten Sie nun folgende Fragen:
Schauen Sie sich die erste Datei in einem sogenannten Hex-Editor an. Hierzu können Sie auch die Webseite HexEd.it verwenden. Erkennen Sie die Darstellung aus dem Texteditor wieder?
Welche Dateigröße haben die beiden Dateien?
Wie hängt die Dateigröße mit der Anzahl der gespeicherten Zeichen zusammen? Warum ist der Zusammenhang für die zweite Beispieldatei nicht gegeben? Tipp: Hierbei kann Ihnen ein Hex-Editor weiterhelfen.
Der gleiche Textinhalt ist auch in
Datei 3
gespeichert. Diese ist aber keine Textdatei, sondern eine Office Open XML Datei, wie sie beispielsweise von Microsoft Word verwendet wird. Warum ist diese größer als die obigen Dateien (mit dem gleichen Textinhalt)?
Lösungshinweise#
Frage 2: Deutlich weniger als 1 kB. Frage 3: Wieviele Byte werden von einem ASCII kodierten Zeichen belegt?
Lösungsvorschlag#
Sie sollten die Darstellung der Zeichen als Hexadezimalzahlen sich anschauen können, welche beispielsweise so aussieht:
Die Dateigröße können Sie direkt mit den Boardmitteln ihres Betriebssystems ermitteln. Diese betragen
149 Byte für die Datei
beispieltext_1.txt
154 Byte für die Datei
beispieltext_2.txt
Die Anzahl der Zeichen ist in beiden Dateien gleich, jeweils 149. Da bei der ASCII-Kodierung ein Byte pro Zeichen benötigt wird, ergibt sich aus der Zeichenzahl direkt die Dateigröße. Bei Betrachten der zweiten Beispieldatei sieht man jedoch, dass diese Zeichen enthält, welche nicht durch die ASCII-Tabelle abgedeckt sind und somit mehr als ein Byte zur Kodierung benötigen.
Die Office Open XML enthält nicht nur den Textinhalt, sondern auch Informationen zu Formatierung des Textes und Metainformationen. Sie ist entsprechend viel größer und keine Textdatei, im Gegensatz zu den beiden obigen Beispieldateien. Ein Blick in den Anfangsbereich der Datei verdeutlicht die Komplexität einer solchen Datei.