So konvertieren Sie Strings in Hex-Werte in C

Lesezeit: 2 Minuten

Benutzer-Avatar
Allamaprabhu

Ich habe die Zeichenfolge “6A”, wie kann ich sie in den Hex-Wert 6A umwandeln?

Bitte helfen Sie mir mit der Lösung in C

Ich habe es versucht

char c[2]="6A"
char *p;
int x = atoi(c);//atoi is deprecated 

int y = strtod(c,&p);//Returns only first digit,rest it considers as string and
//returns 0 if first character is non digit char.

  • Durch die Nutzung val=strtol(string, NULL, 16); Es gibt a zurück long eingeben, so dass Sie es möglicherweise überprüfen / umwandeln müssen.

    – Wetterfahne

    9. April 2015 um 19:22 Uhr


  • Verdient keine Abwertung. Es ist eine echte Frage.

    – Allamaprabhu

    9. April 2015 um 19:24 Uhr


  • @mah Hoffe, das erfüllt jetzt den Zweck.

    – Allamaprabhu

    9. April 2015 um 19:37 Uhr

  • @SteveFenton Danke, aber ich brauchte eine Lösung in C, nicht obj-C.

    – Allamaprabhu

    9. April 2015 um 19:39 Uhr

  • char c[2]="6A" ist ein Problem. sollte sein char c[]="6A" oder char c[3]="6A". c ist kein Schnur es sei denn, es hat ein abschließendes Nullzeichen.

    – chux – Wiedereinsetzung von Monica

    9. April 2015 um 20:40 Uhr


Benutzer-Avatar
Wetterfahne

Die Frage

“Wie kann ich einen String in einen Hex-Wert umwandeln?”

wird oft gestellt, aber es ist nicht ganz die richtige Frage. Besser wäre

“Wie kann ich einen Hex-String in einen Integer-Wert umwandeln?”

Der Grund dafür ist, dass ein ganzzahliger (oder char oder long) Wert binär im Computer gespeichert wird.

"6A" = 01101010

Nur in der menschlichen Darstellung (in einer Zeichenfolge) wird ein Wert in der einen oder anderen Notation ausgedrückt

"01101010b"   binary
"0x6A"        hexadecimal
"106"         decimal
"'j'"         character

alle repräsentieren den gleichen Wert auf unterschiedliche Weise.

Aber als Antwort auf die Frage, wie man einen Hex-String in einen umwandelt int

char hex[] = "6A";                          // here is the hex string
int num = (int)strtol(hex, NULL, 16);       // number base 16
printf("%c\n", num);                        // print it as a char
printf("%d\n", num);                        // print it as decimal
printf("%X\n", num);                        // print it back as hex

Ausgabe:

j
106
6A

1311060cookie-checkSo konvertieren Sie Strings in Hex-Werte in C

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy