整型int数据大小范围问题

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

换言之就是 为什么0挤掉的是正数的一个位置而不是负数的位置呢?
阅读 2.2k
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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题