Java 源码,反码和补码

  计算机在对数据进行运算的原理?
  3 - 2 = 1
  3 + (-2) = 1

  先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  先将-2这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  将这两个数二进制的补码形式参与运算会得到一个二进制补码形式
  然后再将这个二进制的补码形式最终变回二进制的原码形式,然后再变成十进制,等得到 1


  正数的原码反码和补码的转换规则?
  正数的原码,反码和补码是一样的

  负数的原码和反码和补码的转换规则?
  负数的原码变反码,符号位不变,其余的0变1,1变0
  负数的原码变补码,只需要+1

  符号位:二进制的最左边的那一个位,就称为符号位,正数的符号位是0,负数的符号位是1

  原码、反码和补码
  3 - 2 = 1

  3(十进制变为2进制)8bit                                    -2
  00000011 二进制的原码形式                                10000010 二进制的原码形式
  00000011 二进制的反码形式                 11111101 二进制的反码形式
  00000011 二进制的补码形式            11111112--> 11111110 二进制的补码形式(逢2进1)

  3的补码和-2的补码 相当于进行相加
  00000011
  11111110
  --------
  100000001 一共就1个字节byte = 8bit 所以就去掉了前面进1的一位 = 00000001

                               00000001 二进制的原码形式
                               00000001 二进制的反码形式
                               00000001 二进制的补码形式
                              将二进制的原码形式 变十进制
                                    = 1

posted on 2024-03-05 23:01  Bytezero!  阅读(11)  评论(0编辑  收藏  举报