C语言 为什么16位系统中 无符号short比int大?

如题所述

16位系统中short的长度是2个字节,int的长度也是2个字节,所以范围长度为2^16为65535,由于int是有符号的,所以取值范围为(-32768~32767),而无符号的short的取值范围则为(0~65535),最大值为65535,显而易见的在16位系统中无符号short的值是有可能比int大的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-13
1 在16位系统中,unsigned short(无符号short)和int均占2字节空间。

2 int为有符号数,在16位系统中,表示值范围为-32768~32767。
3 unsigned short为无符号数,表示值范围为0~65535。
从表示范围上可以看出,unsigned short所能表示的最大值要比int的更大。本回答被网友采纳
第2个回答  2019-03-05
因为int是带符号,第一位是表示符号位,最大的数为01..1(15个1)=32767
unsigned short 是无符号,最大的数为1..1(16个1)=65535
第3个回答  2015-10-29
16位系统int是最高位表示符号位,其范围-32768-32767,而无符号short型是没有位用来表示符号位的,其范围为0-65535
相似回答