char zu hex (Text)

Gast #4594878
Hi,

ich möchte mit einem Var einzelne Chars über den UART verschicken.

diese können ja den Wert 0-255 also 0x0-0xFF annehmen.

Nun möchte ich nicht das Char einfach auf den UART geben, sondern das 
ganze als null terminierten String senden (also 4 Zeichen) BSP 255 
gesendet wird 0xFF.

Gibt es da für GCC eine funktion die mir die Variable entsprechend 
umwandelt?

Danke :)
Gast
Johannes schrieb:
> also 4 Zeichen) BSP 255

das sind fünf Zeichen, da nullterminiert...

unsigned char String[5];
unsigned char Zahl = 255; // BSP
unsigned char Nibbel0 = Zahl & 0x0F;
unsigned char Nibbel1 = (Zahl>>4) & 0x0F;

String[0] = '0';
String[1] = 'x';
if (Nibble1 > 9) String[1] = Nibble1 + '0';
else String[1] = Nibble1 + 'A'- 10;
if (Nibble0 > 9) String[2] = Nibble1 + '0';
else String[2] = Nibble1 + 'A'- 10;
String[5] = '\0';


So, oder so ähnlich (ungetestet).
Gast
Rufus Τ. F. schrieb:
> printf("%02X", wert);

Sollte das nicht eine 8-stellige Ausgabe erzeugen? Mit %02 sind ja nur 
die Mindeststellen auf 2 festgelegt und mit 0 aufzufüllen.

Ansonsten:
1
  char input = 0xff;
2
  char output[5];
3
  
4
  sprintf(output, "%hX", input);
5
  strncpy(output, "0x", 2);
6
  printf("%s", output);
Gast
Nee, schon ok. Wenn der Wert ein echtes Zeichen ist, sollte die Breite 
auf 2 gehen, nur wenn man explizit einen Hex-Wert zuweist werden es 8 
Stellen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.