为什么是这样的答案啊

来源:百度知道 编辑:UC知道 时间:2024/05/20 03:23:38
main()
{
unsigned short a=65536;
int b;
print("%d\n",b=a);
}
结果是0.大家解释以下了,谢了

main()
{
unsigned short a=65536;
int b;
print("%d\n",b=a);
}

输出就是0,因为unsigned short表示的范围跟int表示的范围不同
unsigned short的65536就是int的0,二进制代码完全一样

a越界了。
unsigned short最大的值是65535,
计算机无法表示,就置0

unsigned short【int】型数的取值范围是0~65535
你令a=65536就溢出了 所以是结果是0