我有一个十进制数,我们已经将其转换为十六进制,并存储在十六进制数组中。之后,我添加了一个";0x";到这个数字(实际上是char数组(。现在我想把这个十六进制数(在char数组中(转换成Uint8_t,然后打印它。第一个问题是如何进行转换,第二个问题是在打印过程中,应该使用什么打印格式(%02x、%d、%s和…(?
此示例将十六进制字符串转换为整数:
#include <stdio.h>
int main(void)
{
int val;
char str[] = "0x12";
int res = sscanf(str, "%i", &val);
printf("res=%d val=%dn", res, val);
}
程序输出
res=1 val=18
%i
格式在scanf
函数族中用于接受十进制、八进制(以0开头(或十六进制(以0x开头(的输入。如果您只想接受十进制,请使用%d
或%u
。