请问unsigned short a=32768;printf("a=%d",a); 结果是多少呢?

来源:百度知道 编辑:UC知道 时间:2024/05/25 07:20:51
请问为什么?

请问你用的是什么样的编译器:
我用的是MS-VS05.此时
由于unsigned short 表示的数值范围为
0~65535。它占用两个字节16位,并不会截断。
结果如下:
32768
请按任意键继续. . .

解释如下:
32768的二进制补码为:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
由于是无符号的整数,所以最高位1为数值不是符号位
=1*2^15

结果是-2147450880 意思就是结果益出 你的a因该是32767吧 ~ 要问为什么 就是超出编辑器的范围了

a=-32768

这是在TC 2.0下的运行结果。