目录

      • 正数:
      • 负数:
        • 负数 -->补码:
          • 过程示例:
        • 补码 --> 负数:
            • 法一:
            • 法二:

正数:

正数补码 = 自身对应二进制数

e.g. 27 = 0001 1011

负数:

负数 -->补码:

  1. 取得负数的绝对值的二进制数字
  2. 按位取反
  3. 加1

e.g: -86 = 1010 1010

过程示例:
  1. |-86|= 86,86 --> 0101 0110

  2. 0101 0110 :按位取反指是0的位取1,是1的位取0

    ​ 故有:1010 1001

  3. 加1:1010 1001 + 1 = 1010 1010

  4. -86补码为 1010 1010

补码 --> 负数:

法一:

逆过程即可

法二:

首位取负,其余位取正,乘对应权重:

-86 = 1010 1010(补码)
10101010 = − 1 ∗ 2 8 − 1 + 0 + 1 ∗ 2 6 − 1 + 0 + 1 ∗ 2 4 − 1 + 0 + 1 ∗ 2 2 − 1 + 0 1010 1010 = -1*2 ^ {8-1} + 0 + 1 * 2 ^ {6-1} + 0 + 1 * 2 ^ {4-1} + 0 + 1 * 2^{2-1} + 0 10101010=1281+0+1261+0+1241+0+1221+0

更多推荐

简记:计算机补码与原十进制数的转换