java基础:原码反码补码

版权声明:本文为博主原创文章,未经博主允许不得转载。你想转载请附加连接哦 https://blog.csdn.net/dmw412724/article/details/83059926

注意:计算机的世界只有补码,没有原码和反码.

一.原码:

正数的原码是本身: 10是 0000 1010 

负数的原码是本身.最高位用1代表符号 -10是 1000 1010

二.反码

正数的反码是本身:0000 1010

负数的反码是1 和0 对换.除了最高位. 1111 0101

三.补码

正数的补码是本身:0000 1010

负数的补码是反码+1   1111 0110

 也就是说:

10在计算机里存储的是 0000 1010

-10在计算机里存储的是 1111 0110

为什么要使用补码还不使用原码呢?因为使用原码计算不正确.

比如:10 加上 -10 = 0 

0000 1010 

1000 1010

----------------相加

1001 0100  = 这玩意明显不是0

那么使用补码来看.

  0000 1010 

  1111 0110

---------------------

1 0000 0000 由于byte只有8位所以舍弃了外边的那个1 最终结果= 0

猜你喜欢

转载自blog.csdn.net/dmw412724/article/details/83059926