补码的加减法

  • 数用补码表示,符号位参与运算
考虑几个问题?
1.实际操作能否只取决于操作码?
2.结果需不需要修正?
3.如何将减法转换为加法?

在这里插入图片描述
在这里插入图片描述

  • 如何求变补?不管Y的补是正还是负,将其符号连同位数一起各位变反,末位再加一
  • 简单来说,就是从右边第一位1开始(本身不用变)左边的包括符号位均取反

在这里插入图片描述

算法的流程与逻辑实现

在这里插入图片描述
在这里插入图片描述

溢出判断

  • 如何溢出?运算过程中,出现大于字长绝对值的现象
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

溢出原因

在这里插入图片描述

单符号位判断

  • 用符号位产生的进位与最高有效位产生的进位进行异或运算,结果为1表示溢出

在这里插入图片描述
在这里插入图片描述

  • 可以看到,减法的时候,用的是减数的变补和被减数的补

在这里插入图片描述

双符号位(变形补码)

  • 两个符号位都看作数码一样参加运算;两数进行以$2^{n+2}为模的加法,即最高位产生的进位要丢掉$
  • 正数的最高位是00,负数是11,出现01或者10表示溢出
  • 结果的符号位是01表示正溢出;出现10表示负溢出
  • $S_{f1}$是最高符号位,$S_{f2}是第二符号位$

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本的加法/减法器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

舍入方法

在这里插入图片描述

习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐