【发布时间】:2015-02-22 20:14:12
【问题描述】:
如何在 AVR Studio 中将十六进制(无符号字符类型)转换为十进制(整数类型)?
是否有任何内置函数可用于这些?
【问题讨论】:
-
对于整数类型,十六进制和十进制只是人类的不同表示,实际数据总是二进制的。所以无论你在源代码中写
0x0A还是10,在编译时都没有区别。 -
unsigned char b = 0x??; int i = b; -
您的问题不清楚。 “十六进制(无符号字符类型)”到底是什么意思?单个十六进制数字的 ASCII 表示?一个字符串(即一个 ASCII 字符数组)?或者只是一个二进制数,正如其他人在这里所建议的那样?一个例子可能会有所帮助。
-
但是当我执行算术运算时,我没有得到预期的结果。那么如何将十六进制字符串(我使用串行通信接收)转换为相应的整数?
-
试试
sscanf(hex_string, "%x", &my_unsigned_int);,或my_int = strtol(hex_string, NULL, 16);。