是2的17次方没吗再问当给16位的unsigned short 对象赋值100000时,赋的值是什么谢谢请详解
2 回答

吃鸡游戏
TA贡献1829条经验 获得超7个赞
short 最大值是0111 1111 1111 1111,即2的15次方减1(最高位是符号位)
unsigned short 最大值是1111 1111 1111 1111,即2的16次方减1
当给16位的unsigned short 对象赋值100000时,赋的值是什么,那就是它自己了

胡说叔叔
TA贡献1804条经验 获得超8个赞
short int 字长16位,最高位是符号位,只能用15个1,写成16进制数是 0x7fff。
unsigned short 字长16位,没符号位,可以用16个1,写成16进制数是 0xffff。
他们的10进制值可以打印出来看:
void main()
{
short int x=0x7fff;
unsigned short int y =0xffff,z;
printf("x=%d ",x);
printf("y=%d ",y);
z = 100000;
printf("z=%d ",z);
}
x=32767 y=65535 z=34464 (z高位溢出丢失)
- 2 回答
- 0 关注
- 786 浏览
添加回答
举报
0/150
提交
取消