string in hex umwandeln

Gast #1602747
Hi,
Ich bekomme als String Hexwerte geliefert, z. B. "E8".
Diese benötige ich nun wieder als hex.
Ich habs schon mit "sprintf(tmp,"%02x",atoi(hex_tmp));" probiert, leider 
ohne Erfolg.

In hex_tmp steht beispielhaft "E8\0" und in tmp (unsigned char) soll nun 
eben E8 (1110 1000) rein.

Kann mir bitte jemand auf die Sprünge helfen. Die Suchfunktion hat erst 
einmal nicht ergeben.
Gast
Ich hab jetzt kurzer Hand eine  eigene Funktion geschrieben:
1
uint8_t str2int(char dat){
2
  dat -= '0';
3
  if (dat>9) dat-= 7;
4
  return dat;
5
}

Mit dem Aufruf bekomm ich dann das was ich will ;)
1
tmp=str2int(hex_tmp[0])*16+str2int(hex_tmp[1]);


Würde mich trotzdem interessieren ob es auch mit sprintf geht???
hex schrieb:

> Würde mich trotzdem interessieren ob es auch mit sprintf geht???

Nein.
Du hast zu allererst einfach nur einen String mit dem du etwas machen 
willst. Also ist sprintf schon mal falsch. sprintf erzeugt einen String. 
atoi geht auch nicht, denn atoi geht von einer Dezimaldarstellung aus.
Wenn schon, dann ist sscanf dein Freund: Einen String zerlegen und die 
Einzelteile daraus in anderen Formaten herausholen. Auch alle strtoxxx 
Funktionen sind hier nützlich.

Aber für deinen Fall ist das wohl Overkill, da eine derartige 
Umwandlungsfunktion, wie du gesehen hast, in wenigen Zeilen gemacht ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.