int变量占16位,数的范围是-(2^15)~(2^15-1)。为什么?

2024-12-17 20:07:54
推荐回答(3个)
回答1:

如果int型占用16位的话 可以肯定的是 最多能表示 2^16 个数
如果是无符号行 0~2^16-1 正好是2^16个

如果有符号型 如果第一位为0 表示正数 那么最多只能表示出2^15个数 再加上一个零的话 那么它的范围就是0~2^15-1
如果第一位为1 表示负数 它的范围也应该是2^15 所取的范围是-2^15~-1

需要注意的是 当第一位为0时 其它15个也为0是 表示 0
当第一位为1时 其它15个也为0时 表示 -2^15 这也就是补码表示的特点

回答2:

int用了一位作为符号位,就把0~(2^16-1)平均分成了两份,一份用于表示正数,一份用于表示负数,内部是使用补码表示的,建议去看一下补码表示法,就明白了

回答3:

我的理解是这样的:
最高位是符号位!
0算在正数里,所以,正数比负数少一个!