定点加减法、溢出判断

一、移位运算

1.逻辑移位规则

     分逻辑左移、逻辑右移,移出的空位都用0来补。 逻辑左移:低位添 0,高位移丢 ;逻辑右移:高位添 0,低位移丢。

2 .算数移位规则

分无符号位数、有符号数的移位。无符号数: 等同于逻辑移位 ;

有符号数:符号位不动

二、补码加减法

理论基础:任意两数的补码之和等于该两数之和的补码。

注:负数用补码表示,减法运算就可以化为加法来做。这样,运算器里只需要一个加法器就可以了,不必再配减法器,从而简化了计算机的设计。

例1:设 A = 0.1011,B = – 0.0101,求 [A + B]补

 例2:设 A = –9,B = –5,求 [A+B]补

A的补码表示:10111;B的补码表示:11011

 例3:设机器数字长为 8 位(含 1 位符号位) 且  A = 15, B = 24,用补码求 A – B

A=15=00001111

B=24=00011100

 注:连同符号位一起相加,符号位产生的进位自然丢掉。

三、溢出概念与检测方法

1.溢出定义

在运算过程中如出现大于字长绝对值的现象,称为“溢出”。

例1:设 A = 11,B = 7,求 A+B

两个正数相加的结果成为负数,这显然是错误的。

例2:设 A = - 11,B = - 7,求 A+B

 

两个负数相加的结果为正数,这同样是错误的。

总结:之所以发生错误,是因为运算结果产生了溢出。两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢。两个负数相加,结果小于机器所能表示的最小负数,称为负溢。

 

2.溢出判断

2.1一位符号位判断(硬件判断)

(1).利用硬件实现溢出判断。

(2)参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。

即:最高有效位的进位 ⊕ 符号位的进位 = 1 说明溢出

\left.\begin{matrix} 1 \oplus 0 = 1\\ 0 \oplus 1 = 1 \end{matrix}\right\}有溢出           \left.\begin{matrix} 0 \oplus 0 = 0 \\ 1 \oplus 1 = 0 \end{matrix}\right\}无溢出

简单示意图:

 

2.2双符号位判断(变形补码)

(1)结果的双符号位相同,未溢出;结果的双符号位不同,溢出  。

(2)最高符号位代表其真正的符号。

例1:设 A = 11,B = 7,求 A+B

双符号位“01”不同,判溢出!最高符号位“0”,代表结果为正。

例2:设 A = - 11,B = - 7,求 A+B

 

 双符号位“10”不同,判溢出!最高符号位“1”,代表结果为负。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值