c - ASCII 字符转整数

标签 c hex

我有一个 char 数组,其中存储了十六进制数字,如下所示 '0' 'x' '3' '2'

或者在C中:

char * hex = "0x32";

0x322 的 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/

相关文章:

java - 0x01 和 0x01f 的区别

c - 打开系统调用未按预期工作

无法编译 libcgcrypt-1.6.1 - 看不到 libgpg-错误

c# - 将十六进制字符串转换为图像

ios - Objective C 中的简单 MIDI 文件编写器

c++ - C++中的十六进制到十六进制

visual-studio - 使用 Visual Studio 的跟踪点以十六进制格式打印表达式结果

C Storage类的区别?

c - Execv Linux printf 不起作用

c - C 中的素数和阶乘