一,移位操作及其意义
图
1
图1
图1
图
2
图2
图2
二,二进制乘法的手工操作
图
3
图3
图3
二进制的手工乘法比较简单,但如何在计算机中实现呢?
图
4
图4
图4
从图4我们可以发现,乘法是可以转化为加法的,这样我们就可以用到之前学习的加法器,但是很明显的问题是:
1.图4的加法是需要4输入的加法器。
2.对应乘数的不同位,部分积 左移的次数不同。
三,改进的方法
1.先将两个部分积相加,得出结果后再与下一个部分积相加
2.如图5,将部分积,将如图红色部分寄存起来
四,原码一位乘法算法
符号位单独运算,数据位取绝对值参与运算
设
:
[
X
]
原
=
X
0
.
X
1
X
2
.
.
.
X
n
[
Y
]
原
=
Y
0
.
Y
1
Y
2
.
.
.
Y
n
则
:
P
0
=
X
0
⨁
Y
0
∣
P
∣
=
∣
X
∣
.
∣
Y
∣
设:[X]_原=X_0.X_1X_2...X_n\quad [Y]_原=Y_0.Y_1Y_2...Y_n \newline 则:P_0=X_0\ {\bigoplus}\ Y_0\quad |P|=|X|.|Y|
设:[X]原=X0.X1X2...Xn[Y]原=Y0.Y1Y2...Yn则:P0=X0 ⨁ Y0∣P∣=∣X∣.∣Y∣
采用改进的乘法。
参考文献:https://www.icourse163.org/course/HUST-1003159001侵权删