java基础(由于自学,欢迎大家点评,在下不胜感激!)

0x7fffffff  是十六进制  转化为2进制为 7个1   十进制的话 即2的31 次方减去一(整形的最大值)

 

o 开头的表示八进制

ox 表示16进制

 

int 4字节 1字节表示8bit (即8个二进制位)  所以int表示的最大长度就是 32位全为1  即 1*2^0+1*2^1.... 

 所以就是32个空位

                                 0000 0000 0000 0000 0000 0000 0000 0000

由于第一位是符号位        111 1111 1111 1111 1111 1111 1111 1111 

  即  1*2^0+.....+1*2^30 

        由于  1*2^30 即            1000000000000000000000000000000   (30个0) 

            而  1*2^29即              100000000000000000000000000000

         。

         。

      所以这些相加之后为   111 1111 1111 1111 1111 1111 1111 1111  

      就差一个1就变成     1000 0000 0000 0000 0000 0000 0000 0000   也就是1*2^31

     所以相加值就为  1*2^31-1了

 

以下是参考

   

int占4个字节,即表示int类型的存储大小为4个字节。
如果转成十进制来说就是“-2147483648 ~2147483647”
即:int只能存放这么大的数字。。。超出范围则溢出。。。

再来说byte
byte最大能够存放 -128~127 的数值。

那为什么是 -128~127 
这个跟字节编码有关 
首先知道byte是一个字节保存的,有8个位,也就是8个0、1。 
8个位的第一个位是符号位, 
也就是说0000 0001代表的是数字1 
1000 0000代表的就是-1 
所以正数最大位0111 1111,也就是数字127 
负数最大为1111 1111,也就是数字-128 

Integer.MAX_VALUE = ox7FFFFFFF 是因为 一个F表示 四个1111 所以 7个F 就是 28个1  28个1 还缺4个1 也就是7了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值