我有一个char数组,其十六进制数字存储为'0' 'x' '3' '2'
。
或者在C:
char * hex = "0x32";
0x32
是2
的ascii代码。我不想使用任何函数,但如何将值2
存储为整数?
所以最后我会:
int dec = 2;
答案 0 :(得分:1)
int dec = (int)strtol(hex, NULL, 16) - '0';
是单向的,完全可移植。您可能想要考虑不传递NULL
,因此您可以验证hex
的内容。
如果您不想使用任何功能(?!),请填写C标准库strtol
版本的源代码。