定点加法减法运算

.补码加法

由于计算机中定点数均以补码的方式表示和存储,采用补码表示法进行加减运算比原码方便多了,因为不论是正还是负,机器总是做加法,减法运算可变成加法运算溢出概念与检测方法

在定点整数运算过程中如出现大于字长绝对值的现象称为“溢出”,在定点机中出现溢出时其结果是不正确的,故运算器必须能检测出溢出。

eg:1.x=+1011,y=+1001,求x+y。

[x]补=01011,[y]补=01001.

01011

+01001

10100

x+y=10100=-0100,这样两正数相加结果是负数,显然是错误的。

2.x=-1101,y=-1011,求x+y。

[x]补=10011,[y]补=10101.

10011

+10101

01000

x+y=01000=+1000,两负数相加结果是正数,同样是错误的。

 

两个正数相加结果大于机器字长所能表示的最大正数称为正溢;

两个负数相加结果小于机器所能表示的最小负数称为负溢;

为了判断“溢出”是否发生我们采  2,补码减法 :

 

                    也是一个式子解决问题—— [ x - y ]补 =  [ x ]补 -[ y ]补  = [ x ]补 + [ -y ]补……  ②

 

                                         [ - y ]补  =  乛 [y]补  + 2^(-n) ……  ③ (符号乛 表示对[y]补 作包括符号位在内的求反操作,+ 2^(-n)表示最末尾加1)

 

       式③是求式②的关键,这样就可以在知道两个数补码的条件下做两个数的减法运算,而且式②③也是要在(mod 2^(n+1))的情况下才能成立的,所以将两个数的补码做减法时符号位上的进位同样要省去。

 

                     例 2 :   x = +1101, y = +0110,  求 x - y。

 

                        解 [ x ]补  = 01101, [ y ]补 = 00110, [ -y ]补 = 11010

 

                                                 [ x ]补          01101

 

                                          +    [ - y ]补           11010

 

                                       ——————————

 

                                             [ x - y ]补        100111

 

                           故: x - y = + 0111用双符号位法,又称为“变形补码”:。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值