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: Unterschied zwischen den Versionen

(Vorgabe angefügt)
(Nicht dem Standard entsprechend)
Zeile 22: Zeile 22:
  
 
Du brauchst bitweiße logische Verknüpfungen und Verschiebeoperatoren um zum Ziel zu kommen.
 
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.

Version vom 20. September 2009, 13:24 Uhr

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.