您當前的位置:首頁 > 書法

一位加減乘運算

作者:由 菠菜 發表于 書法時間:2020-03-15

一位十進位制加法運算

1.

8421碼加法運算

8421碼的加法規則:

⑴兩個十進位制數的8421碼相加時,按“逢二進一”的原則進行;

⑵當和≤9,無需校正;

⑶當和>9,則+6校正;

⑷在做+6校正的同時,將產生向上一位的進位。

一位加減乘運算

1.一位8421碼加法器

校正函式=C4’+S4’S3’+S4’S2’

向上一位的進位C4=校正函式

一位加減乘運算

一位8421碼加法器

定點乘法運算

一般來講,做乘除法運算,用原碼比用補碼簡單,但有的機器,資料是用補碼錶示的,為避免碼制間的頻繁轉換,乘除也用補碼來做。

一、原碼乘法

1。

原碼一位乘(原碼運算子號位要單獨處理)

用原碼運算,資料的符號不能同數值位一同參加運算,而需單獨處理,兩原碼錶示的數相乘,其結果的符號是兩數符號的異或。

手算乘法是透過移位和加法來實現的。計算機不能照搬的原因:

① n位乘法,需n個數相加得部分積,而全加器只有三個輸入端,故實現不了。

② n位乘法,乘積2n位,要用2n位的暫存器來存放積。

③ 若用加法器做加法,n位乘法,需2n位的加法器,造成硬體浪費。

我們想要:

① n位乘法,只用n位加法器,且只用兩數相加的加法器

② n位乘法,只用n位暫存器來存放結果

方法:(

n次加法, n次移位

•參加運算的運算元取其絕對值;

令乘數的最低位為判斷位,若為1,則加被乘數,若為0,則加0;

累加後的部分積以及乘數右移一位;

重複上述操作,直到乘數位全部乘完為止。

一位加減乘運算

一位加減乘運算

原碼乘法器

二、補碼乘法

1.補碼一位乘

被乘數x, [x]補=xs。x1…xn

乘數y, [y]補=ys。y1…yn

校正法

⑴ x任意,y>0時,

[X×Y]補 = [X]補× [Y]補

⑵ x任意,y<0時,

[X×Y]補 = [X]補× (0。y1…yn )+[-X]補

比較法--Booth乘法

補碼校正法雖可行,但是在乘數為負時校正控制比較複雜,實用性差。希望能有一個正負數操作一致的演算法,這就是比較法(又叫Booth法)。

設被乘數 [X]補 = Xs。X1X2…Xn 和乘數 [Y]補 = Ys。Y1Y2…Yn 均為任意符號,

一位加減乘運算

=(Y1-Ys) ×[X]補+2 -1((Y2-Y1) ×[X]補 + 2-1((Y3-Y2) ×[X]補 +

2-1 ( … + 2-1 ((Yn+1-Yn) ×[X]補 +0) )))

將此式展開,得到遞推關係:

[Z0]補=0

[Z1]補=2-1{[Z0]補+(yn+1-yn)[x]補}

[Z2]補=2-1{[Z1]補+(yn-yn-1)[x]補}

[Zn]補=2-1{[Zn-1]補+(y2-y1)[x]補}

從而得到:

[x×y]補=[Zn]補+(y1-ys).[x]補

--------補碼一位乘比較法

⑴ 相乘時,參加運算的數用補碼錶示,符號位參與運算;被乘數取雙符號位,乘數取單符號位並參加運算。

⑵ 乘法開始前,部分積置全0,乘數末位增加附加位yn+1=0。

⑶ 比較yi

和yi+1,決定如何運算

yi yi+1

0 0 ;+全0,結果右移一位;

0 1 ;+[x]補,結果右移一位;

1 0 ;+[-x]補,結果右移一位;

1 1 ;+全0,結果右移一位。

⑷ 重複 n+1 次,最後一次不移位

⑸ 得乘積 2n+2位,其中含兩位符號位

一位加減乘運算

一位加減乘運算

標簽: 乘法  運算  原碼  補碼  yn