Booth乘法
先看一個例子,結合疑問看算法。
1.已知X=+0.0011 Y=-0.1011 求[XY]補
解:[x]補?=0.0011 , [-x]補?=1.1101,[y]補?=1.0101
? ? ?部分積? ? ? ? ? ?乘數? ? ? ? ? ?附加位? ? ? ? ? ? ?說明
? ? 00.0000? ? ? ??10101? ? ? ? ? ? ?0? ? ? ? ? ? ? 10,+[-x]補,右移
+? 11.1101
--------------------------------------------------------------------------------
? ? 11.1101
? ? 11.1110? ? ? ? 11010? ? ? ? ? ? ? ?1? ? ? ? ? ? 01,+[x]補,右移
+? 00.0011
--------------------------------------------------------------------------------
? ? 00.0001
? ? 00.0000? ? ? ? 11101? ? ? ? ? ? ? ? 0? ? ? ? ? 10,+[-x]補,右移
+??11.1101
--------------------------------------------------------------------------------
? ? 11.1101
? ? 11.1110? ? ? ? 11110? ? ? ? ? ? ? ? ?1? ? ? ? ? ?01,+[x]補,右移
+??00.0011
--------------------------------------------------------------------------------
? ? 00.0001
? ? 00.0000? ? ? ?11111? ? ? ? ? ? ? ? ? 0? ? ? ? ?10,+[-x]補,不移位
+??11.1101
----------------------------------------------------------------------------------
? ? ?11.1101? ? ? 1111
所以,[XY]補=1.11011111
計算方法:
1.符號位取兩位,移位的時候小數點后的首位是0還是1,取決于符號位。
2.符號位參與運算,若乘數為1.0101,參與移位的是10101,而不是0101。
3.小數點后有幾位,就移位幾次,最后一次移位后記得完成加法。部分積每移位一次,乘數也跟著移位。
4.當yn,yn+1?=00時,直接右移
? ?當yn,yn+1?=01時,+[x]補,再右移
? ?當yn,yn+1?=10時,+[-x]補,再右移
? ??當yn,yn+1?=00時,直接右移
5.附加位初始值為0。
轉載于:https://www.cnblogs.com/2sheep2simple/p/10229439.html
總結
- 上一篇: 电力、工业、林业、安防都在用的国产测距仪
- 下一篇: 力矩电机控制基本原理