補碼的加減及溢位判斷 加法器

2022-08-12 09:30:19 字數 1632 閱讀 5337

加法: 

整數: [a]補 + [b]補 = [a+b]補 (mod 2^(n+1)) 

小數: [a]補 + [b]補 = [a+b]補 (mod 2)

減法: 

整數: [a-b]補 = [a]補 + [-b]補 (mod 2^(n+1)) 

小數: [a-b]補 = [a]補 + [-b]補(mod 2) 

補碼加法運算溢位判斷三種方法:

[方法一] 

xf、yf分別兩個數的符號位,zf為運算結果符號位。

當xf =yf =0(兩數同為正),而zf=1(結果為負)時,負溢位;

當出現xf =yf =1(兩數同為負),而zf=0(結果為正),正溢位.

[方法二](就是下文加法器裡的溢位標誌of判斷:of=cn (異或) cn-1)

cs表示符號位的進製,cp表示最高數值位進製,⊕表示異或。

若 cs⊕cp =0 ,無溢位;

若 cs⊕cp =1 ,有溢位。

[方法三]

用變形補碼進行雙符號位運算(正數符為00,負數符號以11)

若運算結果的符號位為"01",則正溢;

若結果雙符號為10,則負溢位;

若結果的雙符號位為00或11,無溢位

溢位標誌ofof=cn (異或)cn-1

符號標誌sfsf=fn-1

零標誌zf=1當且僅當f=0

進製/借位標誌cfcf=cout (異或)sub  /cf=cout(異或)cin

做加法時,主要判斷是否溢位

無符號加法溢位條件:cf=1

帶符號加法溢位條件:of=1

帶符號溢位判斷:  ( of=1 )

(1) 最高位和次高位的進製不同

(2)和的符號位和加數的符號位不同

加法器的硬體實現

最基礎的加法器是半加器,它把兩個1位二進位制的運算元 x 和 y相加,得到乙個兩位和,用hs 表示和的較低位,進製輸出用co 表示,可以得到以下等式 hs x y co x y對於多於一位的二進位制加法,則必須要考慮進製的問題。s 行波加法器又叫做序列進製加法器,為 n 個全加器的級聯,但是這種加法...

java SWT實現最簡單的加法器

練練手 從這裡學的 難點 怎樣把輸入字串轉換成double型 import org.eclipse.swt.swt public class test catch exception e open the window.public void open create contents of the ...

超前進製加法器的理解

目前在所有的cpu中,為了提高加法的計算速度。都採用了超前進製加法器。普通的加法器我們很好理解,我這裡從網上找了一張圖。可以想象最簡單的加法計算就是每一位都進行一次全加器計算,然後產生乙個進行c,下乙個全加器在取得進製以後再進行他的位的計算,迴圈下去直到最後一位。這樣的問題是進行一次32位的加法計算...