日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[计算机组成原理] Booth算法 —— 补码一位乘法

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [计算机组成原理] Booth算法 —— 补码一位乘法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

x * y = z

運算規則:

1.和原碼一位乘法不同,補碼一位乘法的符號位參加運算的,且運算結果和所有參加運算的數都是補碼形式。

2.乘數 x 取雙符號位參與運算,部分積的初始值為0;

?? 乘數 y 取單符號位參與運算。

3.乘數 y 首先在末尾添加一個輔助位 0 ,每次討論都是取 y 的最后兩位但每次移動僅移動一位

4.判斷 y 的最后兩位是規則如下:

  • ?? 00 或者 11 時,直接右移一位;
  • ?? 01 時,先加 x 的補,然后右移一位;
  • ?? 10 時,先加 -x 的補,然后右移一位。

5.有個特例,最后一步不用右移了。

舉個栗子:

設 x = -0.1101 , y = 0.1011?

則 [x]補 = 11.0011 ,[-x]補 = 00.1101

一開始 部分積初始值:00.0000

先給y補一個輔助位0,得到 y = 0.10110

首先,從y的最后兩位開始看,0.10110 ,為 10 ,對應規則 “先加[-x]補,再右移一位” :

? ? ? ? ?? 部分積? 00.0000 + 00.1101 = 00.1101 ,右移一位得到 00.01101?

接著,y 右移一位再看,0.10110,為 11 ,對應規則“直接右移一位”:

? ? ? ? ?? 部分積? 00.001101?

然后,y再右移一位再看,0.10110 ,為 01 ,對應規則“先加[x]補,再右移一位”

? ? ? ? ? 00.001101 ? ? ? ?? 部分積

? ? ?? + 11.0011 ? ? ? ? ? ?? [x]補

? ? ?? --------------------?

? ? ?? = 11.011001 ? ? ? ?? 部分積

? ? ? ? ?? 部分積 00.001101 + 11.0011 = 11.011001 ,右移一位得到 11.1011001 (注意這里符號位移動后,仍然保持為 11

接著,y再右移一位再看,0.10110 ,為 10 ,對應規則“先加[-x]補,再右移一位”

? ? ? ? ?? 部分積 11.1011001 + 00.1101 = 00.1000001 ,右移一位得到 00.01000001?

最后,y再右移一位再看,0.10110 ,為 01 ,對應規則“先加[x]補,再右移一位”

? ? ? ? ?? 部分積 00.01000001 + 11.0011 = 11.01110001 ,但這已經是最后一步,不用再右移了

? ? ? ? ? ? ? ? ? ? ? 所以最后結果是? 1.01110001 ? (注意:這是x*y的補碼

?

轉載于:https://www.cnblogs.com/LeoCathyFelix/p/11022465.html

總結

以上是生活随笔為你收集整理的[计算机组成原理] Booth算法 —— 补码一位乘法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。