Codierung und Decodierung
Information und Daten
Auf der Bitübertragungsschicht spielt es keine Rolle welche Informationen übertragen werden. Wichtig ist nur, dass die geschickten Bytes richtig beim Empfänger ankommen. Wie dieser die Bytes zu interpretieren hat, ist auf dieser Schicht nicht definiert. Um bei unseren Experimenten dennoch nicht nur 0-1-Folgen anzuzeigen, können wir die übertragenen Daten als Text interpretieren, was im Prizip aber willkürlich festgelegt ist. Wie man Texte in Bitfolgen umwandelt, soll im Folgenden beschrieben werden.
Zeichencodierung der geläufigsten Zeichen
Um die häufigsten Zeichen im deutschsprachigen Raum (genauer: Zeichen aus ISO 8859-1) zu codieren, reicht ein einzelnes Byte. (Möchtest Du beliebige Zeichen codieren, dann kannst Du wie weiter unten beschrieben vorgehen.)
Codierung
Wie man Zeichen binär codieren kann, kannst Du dem folgenden Dialog entnehmen:Aufgabe 1 - Zeichen codieren
Probiere das selbst einmal aus und erkläre was in jeder Zeile passiert.
Decodierung
Der folgende Dialog demonstriert wie man von einer Binärcodierung wieder zum Zeichen kommt:
Aufgabe 2 - Zeichen decodieren
Probiere das selbst einmal aus und erkläre was in jeder Zeile passiert.
Zeichencodierung beliebiger Zeichen
Um (fast) beliebige Zeichen zu codieren, kannst Du z.B. die Codierung nach UTF-8 vornehmen. Wie dies funktioniert, ist im Folgenden beschrieben. Beachte aber, dass sich bei der Übertragung der Daten dadurch weitere Herausforderungen ergeben, da Zeichen dann unterschiedlich lange Codierungen besitzen.
Die folgenden Experimente benutzen den Python-Datentyp bytes
zur Byte-Darstellung von Zeichen. Mit Hilfe der gleichnamigen Umwandlungsoperation bytes
kann man eine Zeichenkette in eine Bytefolge umwandeln. Dabei muss man die zu benutzende Codierung angeben. Mit der Umwandlungsoperation str
kann man eine Bytefolge wieder in eine Zeichenkette umwandeln. Auch hier muss man die zu benutzende Codierung angeben.
Python-Dialog 1:
Aufgabe 3
Analysiere den gezeigten Dialog. Teste selbst weitere Dialoge dieser Art. Kannst du die Zusammenhänge erklären?
Python-Dialog 2:
Aufgabe 4
Dialog 2 zeigt, wie man die Binärdarstellung der Bytes einer Bytefolge erzeugt. Probiere es selbst aus. Kannst du die jeweils erzeugten Ausgaben deuten?
Python-Dialog 3:
Python-Dialog 4:
Aufgabe 5
Teste und analysiere die Dialoge 3 und 4. Jetzt sollte klar sein, wie man mit Python Zeichenketten Schritt für Schritt in Bitfolgen umwandelt und umgekehrt.