您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>臺式機>

補碼加法,補碼加法計算原理

2010年04月13日 11:41 ttokpm.com 作者:佚名 用戶評論(0
關(guān)鍵字:補碼加法(6568)

補碼加法,補碼加法計算原理
  
  負(fù)數(shù)用補碼表示后,可以和正數(shù)一樣來處理。這樣,運算器里只需要一個加法器就可以了,不必為了負(fù)數(shù)的加法運算,再配一個減法器。
  
  補碼加法的公式是
  
  [x]+[y]=[x+y]? (mod 2) (2.17)
  
  現(xiàn)分四種情況來證明。假設(shè)采用定點小數(shù)表示,因此證明的先決條件是
  
  ︱x︱﹤1, ︱y︱﹤1, ︱x+y︱﹤1。
  
  (1)x﹥0,y﹥0,則x+y﹥0。
  
  相加兩數(shù)都是正數(shù),故其和也一定是正數(shù)。正數(shù)的補碼和原碼是一樣的,可得:
  
  
  [x]+[y]=x+y=[x+y]  ????  (mod 2)
  
  (2)x﹥0,y﹤0,則x+y>0或x+y<0。
  
  相加的兩數(shù)一個為正,一個為負(fù),因此相加結(jié)果有正、負(fù)兩種可能。根據(jù)補碼定義,
  
  ∵  [x]=x,   [y]=2+y
  
  ∴  [x]+[y]=x+2+y=2+(x+y)
  
  當(dāng)x+y>0時,2 + (x+y) > 2,進(jìn)位2必丟失,又因(x+y)>0,
  
  故  [x]+[y]=x+y=[x+y] ????   ?? (mod 2)
  
  當(dāng)x+y<0時,2 + (x+y) < 2,又因(x+y)<0,
  
  故  [x]+[y]=2+(x+y)=[x+y]   (mod 2)
  
  (3)x<0,y>0,則x+y>0或 x+y<0。
  
  這種情況和第2種情況一樣,把x和y的位置對調(diào)即得證。

(4)x<0,y<0,則x+y<0。
  
  相加兩數(shù)都是負(fù)數(shù),則其和也一定是負(fù)數(shù)。
  
  ∵  [x]=2+x,   [y]=2+y
  
  ∴  [x]+[y]=2+x+2+y=2+(2+x+y)
  
  上式右邊分為“2和(2+x+y)兩部分.既然(x+y)是負(fù)數(shù),而其絕對值又小于1,那么(2+x+y)就一定是小于2而大于1的數(shù),進(jìn)位“2必丟失.又因(x+y)<0,所以
  
  [x]+[y]=2+(x+y)=[x+y]   (mod 2)
  
  至此我們證明了,在模2意義下,任意兩數(shù)的補碼之和等于該兩數(shù)之和的補碼.這是補碼加法的理論基礎(chǔ),其結(jié)論也適用于定點整數(shù)
  
  [例8] x=0.1001, y=0.0101,求x+y。
  
  [解:]

  [x]=0.1001,[y]=0.0101
  
???
  
  所以?。剑?.1110
  
  [例9] x=+0.1011, y=-0.0101,求x+y。
  
  [解:]
  
  [x]補=0.1011,[y]補=1.1011
  
???
  
  所以?。?.0110

  由以上兩例看到,補碼加法的特點,一是符號位要作為數(shù)的一部分一起參加運算,二是要在模2的意義下相加,即超過2的進(jìn)位要丟掉。

非常好我支持^.^

(64) 17.5%

不好我反對

(301) 82.5%

相關(guān)閱讀:

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?