java (五) 原码,反码,补码

    计算机都是以二进制0 和1存储得,Java中数据类型强制转换是用的原码,反码,补码,知识得,所以我们在这里介绍一下。

1.原码

       就是二进制定点表示法,即最位为符号位,“0” 表示正,“1”表示负,其余位表示数值的大小。

       通过一个字节,也就是8个二进制位表示+7和-7

      0(符号位)  0000111

      1(符号位)  0000111

2.反码

         正数的反码与其原码相同;负数的反码是对其原码逐位取反,但是符号位除外。

3.补码

        正数的补码与其原码相同;复数的补码是在其反码的末位加1。

4.例如 :

    原码:                                      反码:                                           补码:

        0(符号位)  0000111 (+7)                0(符号位)  0000111  (+7)       0(符号位)  0000111  (+7) 

       1(符号位)  0000111(-7)                 1(符号位)  1111000 (-7)          1(符号位)  1111001 (-7)

5. 按理来说  0(符号位)  0000111 (+7)  和 1(符号位)  0000111(-7)  相加是位0的但是不是的,让我来一起看下

     0(符号位)  0000111(+7)(原码)

     1(符号位)  0000111(-7)(原码)

     1(符号位)  0001110(计算机都是以二进制存储,二进制逢二进一,1+1=2逢二进一就是0了)


     0(符号位)  0000111  (+7) (补码)

     1(符号位)  1111001   (-7)(补码)

     0 (符号位) 0000000(计算机都是以补码计算的,最后前面其实是有1的10  0000000 ,但是我们是八进制前面的1就舍弃了

 

未完待续。。。。。。

     

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值