半加器的功能是將兩個1位二進制數相加。輸入端口A、B,輸出端口S(輸出),C(進位)。spa
其有一個很明顯的缺點:不能將低位的進位參與運算。3d
全加器由兩個半加器構成。輸入端口A、B、Cin,輸出端口S(和)、Cout(進位輸出)。blog
有了全加器,只要將它簡單的連在一塊兒就能實現多位的加法器。get
例如求 (1101)2 + (0110)2,答案應該爲和爲 (0011)2,進位爲1.能夠用4個全加器構成4-bit全加器來實現,如圖it
顯而易見,這個圖能夠推廣,因此這樣就能獲得32-bit的加法器。原理
檢查加法結果是否溢出硬件
溢出(overflow):是指運算結果超出了正常的表示範圍二進制
4-bit運算時方法
溢出的檢查方法im
「最高位的進位輸入」不等於「最高位的進位輸出」,說明產生了溢出。
通過一個異或門,若是C31和Cout 不相等,overflow被設爲1,表示溢出。(爲何能夠經過這種方法判斷呢?)
對溢出的處理方式
MIPS
提供對兩種不一樣指令分別的處理
X86
設有「溢出標誌OF」(Overflow Flag)。若是把操做看做有符號數,若發生溢出,則自動設置OF=1;不然OF=0。
這實際上是一個加法和減法器,與以前的32-bit加法器相比,在輸入端B多了一個二選一多路選擇器,當sub-mode爲0,是加法模式,也沒有來自低位的進位;當sub-mode爲1時,是減法模式,首先B按位取反,同此同時sub-mode爲是低位的進位,恰好是-B = ~B + 1.
參考連接:https://www.coursera.org/learn/jisuanji-zucheng/lecture/ydYAV/305-jia-fa-he-jian-fa-de-shi-xian