请教大家一道问题
来源:百度知道 编辑:UC知道 时间:2024/06/04 18:57:21
main()
{ unsigned int u=65535;
printf(”u=%d\n",u);
}
输出结果:u=-1
为什么
{ 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是越界了。
你那程序引号也不对。