当我尝试使用printf("%2x")
打印0x15
到0x75
,我看到预期的输出:未定义行为而打印0x85或位0x95
但是,如果我尝试打印0x85
或0x95
am得到0xffffff85
和0xffffff95
作为输出。为什么是这样?
#include <stdio.h>
int main()
{
char test = 0x85;
printf("\n test hex: %2x \n", test);
return 0;
}
输出:
test hex: ffffff85
'无符号char'。 'u_char'是某些系统上存在的非标准别名。 – 2011-06-17 06:40:30