请教大家一道问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:57:21
main()
{ unsigned int u=65535;
printf(”u=%d\n",u);
}
输出结果:u=-1
为什么

楼上的我.....唉
-1的二进制都是11111111....
unsigned int有点短
对于你的65535,二进制也是111111...
所以-1

unsigned int不能用%d来声明。

printf("u=%u\n",u);

我的环境是MSDEV,会有一个警告,编译后结果是65535

把无符号变量转换为十进制输出
-1的二进制是11111111......所以为-1

-1是越界了。
你那程序引号也不对。