Umwandlung ASCII -> Hex



  • Hallo!

    Wäre toll wenn mir jemand bei diesem Problem helfen könnte:

    geg.: char destination[256] mit Inhalt "aa🇧🇧cc: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...

    aa🇧🇧cc: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. ]


Anmelden zum Antworten