unsigned int变量如何存储负值?

时间:2019-01-05 17:12:04

标签: c unsigned

当我尝试以下代码片段时,将其打印为-1作为输出。 但是unsigned int如何存储-1?

代码:

unsigned int a = -1;
printf("a = %d \n",a)

输出:-1

这怎么可能?

注意:我在stackoverflow中看到了类似的问题。这是不同的。我的问题是,即使“ a”是无符号的,为什么也将-1打印为输出。

1 个答案:

答案 0 :(得分:1)

%d说明符告诉printf,“将此值解释为 signed 整数”。即使a的值为0xFFFFFFFF(4,294,967,296),当解释为有符号值时,它也会显示为-1。