知方号

知方号

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就舍弃了)

 

未完待续。。。。。。

     

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。