Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Base64

< C-Kurs
Version vom 20. September 2009, 13:24 Uhr von Sdyroff (Diskussion | Beiträge) (Nicht dem Standard entsprechend)

Schreibe eine Base64 Kodierer. Er soll einen fest im Programm vorgegebenen String nach Base64 kodieren. Um zu erfahren wie Base 64 funktioniert kannst du dir die Wikipedia Seite zu Base64 ansehen. Du kannst die Vorgabe benutzen. In dieser müssen nur die 4 Funktionen encode_*_output() geschrieben werden. Ersetze jeweils das return 0. Falls du Lust hast, kannst du dir selbst überlegen wie du ein solches Programm schreiben würdest. Allerdings haben wir strings noch nicht behandelt. Frage deinen Tutor falls dir etwas unklar ist.

Die Funktion encode_first_output soll aus Byte1 Zeichen1 brechnen:

     Byte1      |      Byte2      |     Byte3
7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0

5 4 3 2 1 0|5 4   3 2 1 0|5 4 3 2   1 0|5 4 3 2 1 0 
  Zeichen1 |   Zeichen2  |   Zeichen3  |  Zeichen4

das bedeutet, dass in Zeichen1 die 6 höchsten Bits von Byte1 enthält.

Beispiel:

Byte1: 0100 0011
Byte2: 1001 0101
Byte3: 0010 0001
Zeichen1: 010000 
Zeichen2: 111001
Zeichen3: 010100
Zeichen4: 100001

Du brauchst bitweiße logische Verknüpfungen und Verschiebeoperatoren um zum Ziel zu kommen.

Achtung! Wir beachten den Standard nicht zu 100%. Eigentlich müsste nach 76 Zeichen ein Umbruch eingefügt werden. Wenn du Lust hast verändere das Programm, dass es sich so verhält.