unsigned short int a=0;
printf("%d",sizeof(a));
结果为2 是为什么?
printf("%hu",a-1);
为什么是65535?
因为短整型是占两个空间啊,不然呢?
“printf("%d",sizeof(a))”中问的是 sizeof (所占空间),所以答案为2(实数的短整型)。
“printf("%hu",a-1)”中问的是 a-1的值,unsigned short int 数值的取值范围就是0-65535,a-1则为循环所以就是最大值
回复 77.:
谢谢 现在我明白了! 我想想问问这个a-1为循环是什么意思!
我可能明白了!
a-1=-1
因为
-1 的二进制是 1111 1111 1111 1111
又因为是无符号整形 所以最高位不是符号位 所以是 短整型最高位 是这样吗?
回复 DT晓:对,就是没有-1,就默认成了短整型最高位
点赞
扫一扫分享朋友圈
二维码
分享
你确定要删除这个问题吗?