Buchstaben in Hexadezimalzahlen umwandeln

Fruko

Grünschnabel
Also ich hab das Problem das wir in der Schule ein Projekt machen müssen. In diesem Projekt machen wir eine Stange mit LEDs die wie bei Light Painting funktionieren sollen. Das bedeutet wir haben eine eingestellte Belichtungszeit und haben die Buchstaben auf 7 Zeiteinheiten im Hexadezimalbereich wie folgt umgewandelt:

A? 0x1F, 0x3F, 0x64, 0x44, 0x64, 0x3F, 0x1F, 0x00
Ä? 0x9F, 0x3F, 0x64, 0x44, 0x64, 0x3F, 0x9F, 0x00
B? 0x7F, 0x49, 0x49, 0x36, 0x7F, 0x36, 0x00
C? 0x3E, 0x7F, 0x41, 0x41, 0x41, 0x63, 0x22, 0x00
D? 0x7F, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x3E, 0x00
E? 0x7F, 0x7F, 0x49, 0x49, 0x49, 0x49, 0x41, 0x00

Jz ist meine Frage wie schreibe ich das in einem C-Programm das mir die Buchstaben umgewandelt werden.

Ich hoffe ihr könnt mir helfen.

Lg Fruko
 
also ich bin absoluter amateur :S

ich möchte in c ein programm schreiben mit dem man ein worter bzw wörter einließt und die einzelenen buchstaben wie oben gezeigt umwandelt

freundliche grüße
fruko
 
Hi,

achso, wenn es nicht mehr ist, dann sollte dir folgendes Code-Schnipsel weiterhelfen:
C:
#include <stdio.h>

void printSentence(const char* text) {
  printf("0x%02x", (*text & 0xFF));
  while(*++text) {
    printf(", 0x%02x", (*text & 0xFF));
  }
}

int main(void) {
  printSentence("Dies ist ein Test mit mehrern Wörtern.\nAuch mit Zeilenumbruch und Sonderzeichen ;)");
  return 0;
}

Ist zwar ungetestet, sollte aber an sich so funktionieren.

Gruß
BK
 
Zuletzt bearbeitet:
Hi.

@Fruko: Bitte achte auf die Netiquette, insbes. Punk 15 Groß-/Kleinschreibung. Danke!

Ich glaube ja das da etwas anderes gemeint ist.

Es soll jeder Buchstabe einem Tupel zugeordnet werden.

C:
struct char_map_t {
  char letter;
  const unsigned char seq[8];
} char_map[] = {
  { 'A', { 0x1F, 0x3F, 0x64, 0x44, 0x64, 0x3F, 0x1F, 0x00 } },
  { 'B', { 0x7F, 0x49, 0x49, 0x36, 0x7F, 0x36, 0x00 } },
  ...
};

void print_char(char c) {
  // Eintrag für c im Array suchen
  for (int i = 0; i < sizeof(char_map)/size_of(*char_map); ++i) {
    if (char_map[i].letter == c) {
      display(char_map[i].seq);
      return;
    }
  }
}
Gruß
 
Zurück