C语言中 int 范围是 -2^15~2^15 -1 unsigned int 是0~2^16 -1 帮解释下 -2^15为什么不用-1, 其他两个要-1
C语言中 int 范围是 -2^15~2^15 -1 unsigned int 是0~2^16 -1 帮解释下 -2^15为什么不用-1, 其他两个要-1
日期:2012-08-22 12:39:05 人气:1
建议再去复习 二进制编码及补码。这里简单解释下。
int 范围是 -2^15~2^15 -1 说明是由16位表示(c 中int 长度根据机器不同而不同),
不加unsigned 说明有符号位 。二进制编码如 2,可以表示为 0 000 0000 0000 0010 ,第一个0 是符合位,为0则这个数是正数,1则为负数。所以正数最大为 0 111 1111 1111 1111 即 2^15 - 1,unsigned 没有符号为即最大为:1111 1111 1111 1111 即2^16 - 1
而