补码加法,补码加法计算原理

台式机

8人已加入

描述

补码加法,补码加法计算原理
  
  负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。
  
  补码加法的公式是
  
  [x]+[y]=[x+y]  (mod 2) (2.17)
  
  现分四种情况来证明。假设采用定点小数表示,因此证明的先决条件是
  
  ︱x︱﹤1, ︱y︱﹤1, ︱x+y︱﹤1。
  
  (1)x﹥0,y﹥0,则x+y﹥0。
  
  相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:
  
  
  [x]+[y]=x+y=[x+y]        (mod 2)
  
  (2)x﹥0,y﹤0,则x+y>0或x+y<0。
  
  相加的两数一个为正,一个为负,因此相加结果有正、负两种可能。根据补码定义,
  
  ∵  [x]=x,   [y]=2+y
  
  ∴  [x]+[y]=x+2+y=2+(x+y)
  
  当x+y>0时,2 + (x+y) > 2,进位2必丢失,又因(x+y)>0,
  
  故  [x]+[y]=x+y=[x+y]           (mod 2)
  
  当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的位置对调即得证。

(4)x<0,y<0,则x+y<0。
  
  相加两数都是负数,则其和也一定是负数。
  
  ∵  [x]=2+x,   [y]=2+y
  
  ∴  [x]+[y]=2+x+2+y=2+(2+x+y)
  
  上式右边分为“2和(2+x+y)两部分.既然(x+y)是负数,而其绝对值又小于1,那么(2+x+y)就一定是小于2而大于1的数,进位“2必丢失.又因(x+y)<0,所以
  
  [x]+[y]=2+(x+y)=[x+y]   (mod 2)
  
  至此我们证明了,在模2意义下,任意两数的补码之和等于该两数之和的补码.这是补码加法的理论基础,其结论也适用于定点整数
  
  [例8] x=0.1001, y=0.0101,求x+y。
  
  [解:]

  [x]=0.1001,[y]=0.0101
  
    补码加法
  
  所以 x+y=+0.1110
  
  [例9] x=+0.1011, y=-0.0101,求x+y。
  
  [解:]
  
  [x]补=0.1011,[y]补=1.1011
  
   
  
  所以 x+y=0.0110

  由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是要在模2的意义下相加,即超过2的进位要丢掉。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分