计算机组成原理-机器码

原码

  • “00...0” 和 “10...0” 均表示 0

  • 最左表示“符号位” ⇒ 0 表示正数,1 表示负数

  • 加法运算

  1. “符号位”相同则“数值位”直接相加,符号位不变
  2. “符号位”不同则“数值”大的减数值小的,“符号位”与数值大的相同
  • 减法运算
    把“减数”符号取反,剩下的与加法相同

反码

  • “00...0” 和 “11...1” 均表示 0
  • 正数 ⇒ 反码等于原码
  • 负数 ⇒ 除符号位外其他部分“取反
  • 加法运算 ⇒ 直接相加,最高位向最低位进位(循环进位)
    image

补码

  • “00...0” 为 0 的补码
  • 正数:补码等于原码
  • 负数
    • 反码法 ⇒ 符号位不变,按位取反,最后加 1
      image
      image
      • 🔔 定点小数同理
    • 扫描法 ⇒ 符号位不变,右起第一个 1 及其右边的 0 不变,其余取反
      image
  • 加法运算
    • 基于计算机会将超过模数的部分去掉,如模为12(1100)时,13(1101)变成1(0001)
      image
      [x]补 + [y]补 = [x+y]补
      image
  • 溢出
    image
    模 12 时 9-8=9-(12-8)=9+4=13=1,此时利用了溢出截断来实现减法,但是 9+4=13=1 不符合实际,就是溢出了,并且是“上溢”
posted @ 2021-08-24 22:05  ICE99125  阅读(456)  评论(0编辑  收藏  举报