文档介绍:Booth
算法运算规则
Y
n
Y
n+1
0
操作
部分积右移一位
(高位)
(低位)
?
运算规则如下:
0
1
部分积加
[X]
补
,
–
符号位参加运算
,运算的
0
右移一位
数均以
补码
表示;
0
部分积加
[-X]
补
,
–
被乘数一般取
双符号位
参
1
右移一位
加运算;
1
1
部分积右移一位
–
乘数可取单符号位;
–
乘数末位增设
附加位
Y
n+1
,且
初值为
0
。
例
题
–
按右表操作。
–
最后一步不移位
,仅根据
Y
0
与
Y
1
的比较结果作相应
的运算。
2020/6/6
-
1
【解答】
[X]
补
=
,
[-X]
补
=
(用双符号表示),
例
3.
若
X=-
,
Y=
,用补码一位乘法求
[XY]
补
。
部分积
[Y]
补
=0. 1011
(用单符号位)
乘数
Y
n
Y
n+1
说
明
0 0. 0 0 0 0 0 1 1 0
+ 0 0. 1 1 0 1 Y
n
Y
n+1
=10
加
[-X]
补
0 0. 1 1 0 1
→ 0 0. 0 1 1 0 1 0. 1 0
1 1
右移一位
→
0 0. 0 0 1 1 0 1 0. 1 0 1
Y
n
Y
n+1
=11
右移一位
+ 1 1. 0 0 1 1 Y
n
Y
n+1
=01
加
[X]
补
1 1. 0 1 1 0 0 1
→ 1 1. 1 0 1 1 0 0 1 0.
1 0
右移一位
+ 0 0. 1 1 0 1 Y
n
Y
n+1
=10
加
[-X]
补
0 0. 1 0 0 0 0 0 1
→ 0 0. 0 1 0 0 0 0 0 1
0. 1
右移一位
+ 1 1. 0 0 1 1 Y
n
Y
n+1
=01
加
[X]
补
1 1. 0 1 1 1 0 0 0 1
2020/6/6
∴
[XY]
最后一步不移位
补
= 1. 01110001
-
2
例
4.
若
X=-, Y=
,用补码一位乘法求
[XY]
补
。
【解答】
[X]
补
=
,
[-X]
补
=
(用双符号表示)
[Y]
补
=0.