我有字符串“ 6A”如何转换为十六进制值6A?
请帮我解决C问题
我试过了
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.
问题
“如何将字符串转换为十六进制值?”
经常被问到,但这不是一个正确的问题。更好的是
“如何将十六进制字符串转换为整数值?”
原因是,整数(或char或long)值以二进制方式存储在计算机中。
"6A" = 01101010
只有在人类表示形式(在字符串中)时,值才能以一种表示法或另一种表示法表达
"01101010b" binary
"0x6A" hexadecimal
"106" decimal
"'j'" character
都以不同的方式表示相同的值。
但是在回答这个问题时,如何将十六进制字符串转换为 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
输出:
j
106
6A
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句