C语言unsigned int问题
#include <stdio.h>
void main()
{
unsigned int x = -5;
printf("%d", x);
}
结果为什么是-5,不是unsigned么,它在二进制中是怎么操作的,不会变成比5大的数吗?
因为就是-5啊,你输出的是【%d】,表示把x当成按照有符号整数格式输出。
你要是想要按照无符号输出,应该是【%u】,结果就是4294967291