Booth算法(有符號數的乘法)


求 M3M2M1M0×Q3Q2Q1Q:  0110×0101  (有符號數用補碼表示,最高位表示正負)

1、添加輔助位:A=0000     Q-1=0

2、控制邏輯判斷:

  ①Q0Q-1=01 時:A=A+M 然后 A、Q、Q-1算術右移 (兩步)

  ②Q0Q-1=10 時:A=A-M  然后 A、Q、Q-1算術右移 (兩步)

     補碼加減:(A-M)補碼=A補碼+(-M)補碼

  ③Q0Q-1=00或11 時:A、Q、Q-1算術右移 (一步)

     補碼右移:空位填1

3、Q有幾位就做幾次右移運算。(如:01000×011,做3次右移結束)

4、結果即為AQ(0001 1110,即 6×5=30)。

 

運算過程和結果
  A Q Q-1 M
初值 0000 0101 0 0110
①  A-M 1010 0101 0 0110
A,Q,Q-1右移 1101 0010 1 0110
②  A+M 0011 0010 1 0110
A,Q,Q-1右移 0001 1001 0 0110
③  A-M 1011 1001 0 0110
A,Q,Q-1右移 1101 1100 1 0110
④  A+M 0011 1100 1 0110
A,Q,Q-1右移 0001 1110 0 0110


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM