java中int能表示的范围为什么是-2147483648到2147483647

基础知识

  1. 正整数符号位为0,原码,补码,反码都一样.
    例:8的8位二进制码为0000 1000,反码为0000 1000,补码为0000 1000

  2. 负整数符号位为1,原码为符号位+数值位(去掉符号的二进制表示形式),反码是将原码除符号位都取反,补码是将反码加1得到.
    例:-8的八位二进制位原码为1000 1000,反码为1111 0111,补码为1111 1000.

  3. 0则可表示为+0(0000 0000)和-0(1000 0000)

  4. 1Byte=8bit
    java中int占用四个字节,占用4*8=32个比特位,可根据01组合表示2^32个数字.

以8个比特位举例保存整数

  1. 8个比特位可以存放2^8=256个数字,如何分配这256个组合空间,将最高位定位符号位表示正负,占一位,剩余7位可分配空间,也就是128个位置存放数字,低七位可以表示为000 0000-111 1111.
  2. 若符号位为0,从0开始编码,则表示的范围是+0到+127;若符号位为1,从0开始编码,则表示的范围为-0到-127.
  3. 但实际上+0(0000 0000)和-0(1000 0000)表示含义相同,则浪费了一种表示数字的组合方法,若将其中一种表示其他数字即可节约空间,将-0(1000 0000)可表示为一个比最小的数还小的数,即比1111 1111(-127)小的1000 0000(-128)
    在这里插入图片描述
  4. 因此8个比特位表示的整数范围为-128-127,即-2^7到2 ^7-1.

java中的int型表示范围

int占四个字节,32个比特位,符号位占一位,31个比特位表示数字,其中0重复表示,分为+0和-0,将其中的-0表示为-2^32(-2147483648)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值