Skip to content

计算机组成原理

1. 了解 原码、反码、补码。

8 位二进制 为例

机器字长 n=8,最高位是符号位

  • 正数:0
  • 负数:1

原码(最直观)

作用:给人看的,用来表示正负。

正数:符号位0,数值位就是绝对值

负数:符号位1,数值位就是绝对值

例:

  • +5 原码:0000 0101
  • -5 原码:1000 0101

反码(过渡用)

作用:只是求补码的中间步骤,本身几乎不用。

正数:反码 = 原码

负数:符号位不变,数值位 按位取反

例:

  • +5 反码:0000 0101
  • -5 反码:1111 1010

补码(真正干活的)

作用:让计算机只用加法器就能做减法!

正数:补码 = 原码 = 反码

负数:补码 = 反码 + 1

例:

  • +5 补码:0000 0101
  • -5 补码:1111 1011

计算 -5+2

首先计算都是用补码进行计算。

  • -5 补码:1111 1011
  • +2补码:0000 0010

直接相加(二进制加法)

  1111 1011   (-5)
+ 0000 0010   (+2)
= 1111 1101

得到结果补码:1111 1101 符合位是1为负数

补码减 1 得到反码 1111 1100 ,反码取反等于源码即 1000 00 11 也就是 -3

计算 -5+6

  1. 补码计算:

    • -5 补码:1111 1011

    • 6 补码 :0000 0110

  2. 直接相加:

       1111 1011
    +  0000 0110
    =1 0000 0001

    最高位进位 1 溢出丢掉,结果:0000 0001

  3. 结果是正数,补码 = 原码

  4. 结果:0000 0001 = 1

定理

  • ~负数 = 正数 - 1
    • ~ -4 = 3
    • -4 补码 1111 1100
    • -4 补码取反 000 0011 = 3

如有转载或 CV 的请标注本站原文地址

访客数 --| 总访问量 --