# Booth 算法
这里写点什么捏?就先来点简介吧!!比较法是 Booth 夫妇先提出来的,也称 booth 算法。
那么!!咱们怎么解题呢,不要担心,其实 booth 算法非常简单,不要被长长的算式所迷惑鸭!!
接下来就由我来简单快速的叙述一下如何利用 booth 算法去做题!
# 准备开始!
首先题目里一般会这样给:已知 [x] 补 = xxxxx,[y] 补 = xxxxx,利用 booth 算法求解 [x*y]。
booth 算法的符号位是成双成对的,和你不一样,因为你还没有成双成对哈哈哈哈哈哈(不是)
另外,我们还需要额外记住的四个固定形态:
尾数形态 | 作法 |
---|---|
00 | 右移一位 |
01 | +[x] 补 后 右移一位 |
10 | +[-x] 补后 右移一位 |
11 | 右移一位 |
# 例题一
已知 [x] 补 = 0.0101,[y] 补 = 1.0101,利用 booth 算法求解 [x*y]
做题前我们需要做一些准备,首先我们写出双符号位形态的 [x] 补、[-x] 补以及 [y] 补(无需双符号)
-
[x] 补 = 00.0101
-
[-x] 补 = 11.1011
-
[y] 补 = 1.0101
然后列出如下表格:
部分积 | 乘数 | 辅助 |
---|---|---|
0 |
我先写到这,如果有想先试试的小伙伴可以先按照自己的思路去写,还没记起来的的小伙伴们可以继续往下看,一会我还会写出两道例题供大家去练习。
解答开始!
辅助位置默认为 0,乘数就是 [y] 补 = 11.0101,部分积初始值也为 0.
部分积 | 乘数 | 辅助 | ||
---|---|---|---|---|
00 0000 | 1010 1 | 0 | 一次判断 | |
10 还记得加什么嘛?没错就是加 [-x] 补 + | 11 1011 | |||
= | 11 1011 | |||
右移 | 11 1101 | 1101 0 | 1 | 二次判断 |
01 还记得加什么嘛?没错就是加 [x] 补 + | 00 0101 | |||
= | 00 0010 | |||
右移 | 00 0001 | 0110 1 | 0 | 三次判断 |
10 还记得加什么嘛?没错就是加 [-x] 补 + | 11 1011 | |||
= | 11 1100 | |||
右移 | 11 1110 | 0011 0 | 1 | 四次判断 |
01 还记得加什么嘛?没错就是加 [x] 补 + | 00 0101 | |||
= | 00 0011 | |||
右移 | 00 0001 | 1001 1 | 0 | 五次判断 |
10 还记得加什么嘛?没错就是加 [-x] 补 + | 11 1011 | |||
11 1100 |
OK 兄弟们,小数点后有四位,那么我们需要进行五次判断,现在已经完成计算过程了,答案已经呼之欲出了!!
[x*y] = 1.1100 1001(如果要双符号为就这样去写:[x*y] = 11.1100 1001)
总结一下,辅助位配合乘数最后一位作判断操作,00 和 11 只需右移就好,而 01 要 +[x] 补,11 要 +[-x] 补,这样我们就能得到最终的结果了。
接下来再来一道爽题!!!
# 例题二
已知 [x] 补 = 1.0101,[y] 补 = 1.0011,利用 booth 算法求解 [x*y]
老规矩:
- [x] 补 = 11.0101
- [-x] 补 = 00.1011
- [y] 补 = 1.0011
列表:
部分积 | 乘数 | 辅助 | ||
---|---|---|---|---|
00 0000 | 10011 | 0 | 一次判断 | |
10 + | 00 1011 | |||
= | 00 1011 | |||
右移 | 00 0101 | 1100 1 | 1 | 二次判断 |
11 右移 | 00 0010 | 1110 0 | 1 | 三次判断 |
01 + | 11 0101 | |||
= | 11 0111 | |||
右移 | 11 1011 | 1111 0 | 0 | 四次判断 |
00 右移 | 11 1101 | 1111 1 | 0 | 五次判断 |
10 + | 00 1011 | |||
00 1000 |
第五次判断后无需移动
答案:0.1000 1111
怎么样,是不是非常爽,在五次判断中出现了两次数字相同的情况,这时候我们只需要进行右移,无需进行计算。
最后我在给大家一道练习题,自己练习一下叭~~~
# 练习
已知 [x] 补 = 0.1101,[y] 补 = 0.1011,利用 booth 算法求解 [x*y]
部分积 | 乘数 | 辅助 |
---|---|---|
0 | ||
# 鸣谢
感谢 B 站 up 主制作的视频,真的非常不错