我有一个 char 数组,其中存储了十六进制数字,如下所示 '0' 'x' '3' '2'
。
或者在C中:
char * hex = "0x32";
0x32
是 2
的 ascii 代码。我不想使用任何函数,但如何将值 2
存储为整数?
所以最后我会:
int dec = 2;
最佳答案
int dec = (int)strtol(hex, NULL, 16) - '0';
是一种方式,并且是完全可移植的。您可能需要考虑不传递 NULL
,这样您就可以验证 hex
的内容。
如果您不想使用任何函数(?!),请从 C 标准库的 strtol
版本中删除源代码。
关于c - ASCII 字符转整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49260835/