Umwandlung ASCII -> Hex
-
Hallo!
Wäre toll wenn mir jemand bei diesem Problem helfen könnte:
geg.: char destination[256] mit Inhalt "aacc:dd:ee:ff" und NULL Terminiert. Hab das mit strtok in Teile (char*) aa , bb , cc , dd , ee , ff zerlegt. Möchte aber aa in Hex haben. Ich habe also einen Zeiger auf "aa". Brauche aber 0xaa "als Wert"!
Gruss tuxi
-
ich schätz das dürfte sscanf machen können. So in der Art:
sscanf(derString, "%2x", &zielVariable);
Mit sscanf kannst dus dir sogar noch leichter machen:sscanf("12:34:56:78", "%2x:%2x:%2x:%2x", &f1, &f2, &f3, &f4);
liefert z.B. die Zahlenwerte 0x12 in f2, 0x34 in f2 etc. Die Syntax von sscanf-Formaten ist dieselbe wie bei printf etc.
[ Dieser Beitrag wurde am 01.04.2003 um 14:59 Uhr von TriPhoenix editiert. ]
-
Hi dann mach so :
printf("0x%s",*(zeiger_variable));
als erg.. hast dann 0xaa
cu..
-
Es gibt strtoul. Damit holst du dir nen Hex-String in ein unsigned long. Das kannst du dann in ein char casten und schon hast du 0xAA in einem Byte stehen...
-
@TriPhoenix:
Das geht aber nur wenn er von vorneherein weiß wieviele Elemente der String hat...
-
Hallo!
Vielen Dank für eure Antworten!
Ich denke ich schaue mir mal strtoul und sscanf genauer an!Gruss tuxi
-
Original erstellt von MaSTaH:
@TriPhoenix:
Das geht aber nur wenn er von vorneherein weiß wieviele Elemente der String hat...aacc:dd:ee:ff als hex-Zahlen roch nunmal verdammt nach MAC-Adresse :p
[ Dieser Beitrag wurde am 02.04.2003 um 00:51 Uhr von TriPhoenix editiert. ]