整型int数据大小范围问题

Java中,int类型长度固定为4字节有符号
为什么能表示的范围是 -2^31 ~ 2^31-1 而不是 -2^31+1 ~ 2^31

换言之就是 为什么0挤掉的是正数的一个位置而不是负数的位置呢?
阅读 2.3k
1 个回答

学计算机原理了吗?你写一下二进制不就一目了然了?

1 字节 8 位,4 字节就是 32 位:0000 0000 0000 0000 0000 0000 0000 0000

第一位是符号位,0 表示正数,那么最大值就是 0 111 1111 1111 1111 1111 1111 1111 1111。哪怕不会二进制十进制换算,就用初中的排列组合公式,也能算出最大值是十进制的 2^31-1

最小值看补码,补码不会算的回去重修计算机原理,这应该是大一学的,这里不讲了。

推荐问题