当我尝试以下代码片段时,将其打印为-1作为输出。 但是unsigned int如何存储-1?
代码:
unsigned int a = -1;
printf("a = %d \n",a)
输出:-1
这怎么可能?
注意:我在stackoverflow中看到了类似的问题。这是不同的。我的问题是,即使“ a”是无符号的,为什么也将-1打印为输出。
答案 0 :(得分:1)
%d
说明符告诉printf
,“将此值解释为 signed 整数”。即使a
的值为0xFFFFFFFF
(4,294,967,296),当解释为有符号值时,它也会显示为-1。