java byte 类型的范围解释l

1.  java  byte 类型的范围

    计算机中数据存储采用二进制 ,拿byte 为例  0000 0001  

    最左边的0 计算机认为这个数字0000 0001   为正数 转化为10进制 -->1;

    byte 1000 0000 计算机认为这个数字为 负数 ,最左边的1 来识别。

     负数存储在计算机中转换 以-128 为例子 是绝对值128 的反码+1  ,把128 转化为2进制 1000 0000  反码-->0111 1111  加1--->1000 0000。

     之前有个困惑 一直说byte 的范围是-128  -128   ,-128 在计算机中转换为 原码的2进制为 1000 0000 这个不是负数码,这个是我们要纯属到计算机中的值 和正负无关 ,只是个     值(脑子有点呆了)。 

    补码 -1  的反码=补码的反码+1 ,为什么呢 ,这个问题 害的我浪费了一张纸 ,一个补码它可能有 01  ,10,  11 情况(无0000 0000)  然后减 1   加过之后变为 00 ,01 ,10 ,反      码 就变为 11, 10 ,01。 来看补码的反码+1 ,反码 10,01,00 -->+1 -->11,10,01  一样。

    这个不是最有趣的,有趣的是  补码+1的反码 是够等于 补码的反码-1 呢? 一个补码它可能有01,10,11 然后加1--> 10,11,100-->反码 --> 01,00,011。

     补码的反码-1 一个补码可能是01,10,11 然后反码-->10,01,00-->减一--> 01,00,? 到这里就推不下去了。

    正常的想法是补码-1 的反码 等于 补码的反码+1  -->01,10,11-->00,01,10-->11,10,01。

       -->01,10,11-->10,01,00-->11,10,01  这个就成立了,为什么会出现上面无法算下去的情况呢 应该  补码的反码 可能是 0000 0000 所以这个就没法算了。

     

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值