我需要将十六进制的 4 位数字值转换为十进制,所以我使用了 ssscanf 但它不适用于负数...
例如,
内部测试;
sscanf("0xfff6","%x",&test);
返回 65526 而不是 -10。
我该如何解决?
最佳答案
您必须手动完成。 x
转换说明符执行从 unsigned int
的转换,它需要一个指向 unsigned int
的指针类型的参数。例如类型转换:
unsigned int test;
int result;
sscanf("0xfff6","%x", &test);
result = (int16_t) test;
关于c - 带十六进制负值的 sscanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802970/