二進制數的乘法


二進制數的加法

先看一個1bit輸入的半加器:

 

 其中,S是和,C_out是進位。從上圖可以發現,S = A XOR B, C_out = A AND B,因此,一個半加器實際上是由異或門和與門電路實現的。

一個全加器,就是一個半加器增加一個進位輸入,下面是一個1bit的全加器:

 

 那么,如果要實現多bit數的加法,只需要用多個全加器即可,這樣的加法器叫做Ripple-Carry Adder:

 

 上圖是一個32bit的Ripple-Carry Adder

 

二進制數的乘法

二進制數的乘法和十進制數的乘法,其基本原理是一樣的

 

 

如上圖所示,這兩種數制的乘法都是把被乘數和乘數的每一位分別相乘,然后將得到的乘積根據所乘的乘數的位數進行移位,比如,在十進制數乘法中,如果將被乘數與乘數的個位相乘,那就把得到的乘積向左移動0位;如果被乘數與乘數的十位相乘,那就把得到的乘積向左移動1位...移位操作完成后,最后將這些移位后的乘積相加,就是最開始這兩個被乘數與乘數的結果。

我們都知道,在二進制數中,只有數字0和1。在二進制數乘法中,如果與被乘數相乘的乘數的某一位為1,那結果就是被乘數本身,如果乘數的某一位為0,那此次的結果就是0。因此,二進制數乘法過程中的數次相乘,其實使用與門實現的。總結一句,二進制數乘法,是用與門與加法器實現的。

 

參考資料: 《數字設計和計算機體系結構》 David Money Harris, Sarah L. Harris


免責聲明!

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



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