补码一位乘法
一,补码一位乘法的基本方法
设 [ X ] 补 = X 0 X 1 X 2 X 3 . . . X n [ Y ] 补 = Y 0 Y 1 Y 2 Y 3 . . . Y n 可 证 明 : [ X ∗ Y ] 补 = [ X ] 补 ∗ ( 0. Y 1 Y 2 Y 3 . . . Y n ) − Y 0 ∗ [ X ] 补 进 一 步 展 开 合 并 后 可 得 : [ X ∗ Y ] 补 = [ X ] 补 ∗ ∑ i = 1 n ( Y i + 1 − Y i ) 2 − i ( 符 号 位 参 加 运 算 ) 由 公 式 得 出 补 码 一 位 乘 法 的 运 算 规 则 如 下 : ( 1 ) 如 果 Y n + 1 = Y n , 部 分 积 加 0 , 部 分 积 算 术 右 移 一 位 ; ( 2 ) 如 果 Y n + 1 Y n = 10 , 部 分 积 加 [ X ] 补 , 部 分 积 算 术 右 移 一 位 ; ( 2 ) 如 果 Y n + 1 Y n = 01 , 部 分 积 加 [ − X ] 补 , 部 分 积 算 术 右 移 一 位 。 重 复 进 行 n + 1 步 , 但 最 后 一 步 不 移 位 。 包 括 一 位 符 号 位 , 所 得 乘 积 位 2 n + 1 位 , 其 中 n 为 数 据 位 位 数 。 ( 1 ) i = n 时 , Y n + 1 = ? Y n + 1 = 0 ( 2 ) Y n + 1 是 哪 个 寄 存 器 ? 在 乘 数 寄 存 器 Y 后 增 加 的 一 位 ( 3 ) 算 术 右 移 的 对 象 有 哪 些 ? 部 分 积 和 乘 数 寄 存 器 均 右 移 设[X]_补=X_0X_1X_2X_3...X_n\quad [Y]_补=Y_0Y_1Y_2Y_3...Y_n\newline 可证明:\newline \quad [X*Y]_补=[X]_补*(0.Y_1Y_2Y_3...Y_n)-Y_0*[X]_补\newline 进一步展开合并后可得:\newline \quad [X*Y]_补=[X]_补*\sum\limits_{i=1}^n(Y_{i+1}-Y_i)2^{-i}({\color{blue} 符号位参加运算})\newline 由公式得出补码一位乘法的运算规则如下:\newline \quad (1)如果Y_{n+1}=Y_n,部分积加0,部分积算术右移一位;\newline \quad (2)如果Y_{n+1}Y_n=10,部分积加[X]_补,部分积算术右移一位;\newline \quad (2)如果Y_{n+1}Y_n=01,部分积加[-X]_补,部分积算术右移一位。\newline \quad 重复进行n+1步,但最后一步不移位。\newline 包括一位符号位,所得乘积位2n+1位,其中n为数据位位数。\newline \quad (1)i=n时,Y_n+1=?\qquad {\color{blue}Y_{n+1}=0}\newline\quad(2)Y_{n+1}是哪个寄存器?\qquad{\color{blue}在乘数寄存器Y后增加的一位}\newline\quad(3)算术右移的对象有哪些?\qquad{\color{blue}部分积和乘数寄存器均右移} 设[X]补=X0X1X2X3...Xn[Y]补=Y0Y1Y2Y3...Yn可证明:[X∗Y]补=[X]补∗(0.Y1Y2Y3...Yn)−Y0∗[X]补进一步展开合并后可得:[X∗Y]补=[X]补∗i=1∑n(Yi+1−Yi)2−i(符号位参加运算)由公式得出补码一位乘法的运算规则如下:(1)如果Yn+1=Yn,部分积加0,部分积算术右移一位;(2)如果Yn+1Yn=10,部分积加[X]补,部分积算术右移一位;(2)如果Yn+1Yn=01,部分积加[−X]补,部分积算术右移一位。重复进行n+1步,但最后一步不移位。包括一位符号位,所得乘积位2n+1位,其中n为数据位位数。(1)i=n时,Yn+1=?Yn+1=0(2)Yn+1是哪个寄存器?在乘数寄存器Y后增加的一位(3)算术右移的对象有哪些?部分积和乘数寄存器均右移
二,补码一位乘法的举例
例
1
已
知
X
=
+
1101
Y
=
+
1011
用
补
码
一
位
乘
法
求
X
∗
Y
例1\ 已知X=\ +1101\quad Y=\ +1011\ 用补码一位乘法求X*Y
例1 已知X= +1101Y= +1011 用补码一位乘法求X∗Y
若有问题,欢迎讨论
参考文献:https://www.icourse163.org/course/HUST-1003159001侵权删