booth算法原理的简单化理解「建议收藏」
最近,在學(xué)習(xí)帶符號(hào)二進(jìn)制數(shù)乘法(multiplication of signed numbers)時(shí)接觸到了布思算法(booth algorithm)。由于是第一次接觸,對(duì)于其原理卻一無所知,書上的解釋以及網(wǎng)上的文章不知是自己才疏學(xué)淺還本來就是泛泛而談,沒有讓我了解其本質(zhì)。經(jīng)過長時(shí)間的思考分析,最終找到了一種比較簡單的理解方法。
舉一個(gè)簡單的例子,比如說計(jì)算10100001×00111110,在這里首先將乘數(shù)00111110改寫為01000000 – 00000010
即
01000000
– 00000010
—————————————————
001111110
這樣根據(jù)乘法分配律得10100001×00111110=10100001×(01000000-0000010)
類似于booth算法的重新編碼形式,再將上述算式改寫為
10100001×00111110=10100001×0+1 000000 + 10100001×000000 -1 0
最終再將上式合并到一起,可得由booth算法改寫后的編碼形式:10100001 × 0+10000-10
由此可見,乘數(shù)的數(shù)段”01″可以重新編碼為“+1”,數(shù)段“10”可以重新編碼為“-1”,數(shù)段“11”可重新編碼為“0”
根據(jù)無符號(hào)二進(jìn)制數(shù)乘法的過程可知,當(dāng)乘數(shù)段為“00”只是對(duì)乘數(shù)進(jìn)行了右移操作,故重新編碼為“0”
由于上述推導(dǎo)過程是根據(jù)二進(jìn)制數(shù)加減以及乘法分配律推導(dǎo)而來的,故對(duì)于由補(bǔ)碼表示的負(fù)數(shù)乘法同樣適用
(以上推導(dǎo)難免有誤,歡迎交流指正)
總結(jié)
以上是生活随笔為你收集整理的booth算法原理的简单化理解「建议收藏」的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雅典娜献祭流小兵时间
- 下一篇: flash动画如何制作网页中演示类