【计算机组成原理】溢出

什么叫溢出呢?
就是计算出的数超过了缓冲区的范围,导致部分数值丢失的操作。

比如说n+1位定点整数X的补码的表示范围就是:
-2n ≤ X <2n
在这里插入图片描述
上面这道例题看上去一点问题也没有奥,但是再一看题干你就会发现:两个正数相加,结果怎么就变成负数了?
同样带着这个问题往下看,
在这里插入图片描述
类似的问题又出现了:两个负数相加,结果怎么就变成正数了?
这里就涉及到了一开始提到的溢出问题,
第一道例题产生了正溢出,也就是说两个正整数相加之和大于所能表示的最大的数;
同理,第二道例题产生了负溢出,也就是说两个负整数相加之和小于所能表示的最小的数


在之后的计算中,如果能事先判断好是否会产生溢出,就会省很大的计算量,下面介绍两种方法:

  1. 双符号位补码法
    对带着符号位的补码进行计算:
    ①如果计算结果前两位是00,就是正数。
    ②如果计算结果前两位是11,就是负数。
    ③如果计算结果前两位是01,就是正溢出。
    ④如果计算结果前两位是10,就是负溢出。
    (注:无论溢出与否,最高位都表示正确的符号)
  2. 单符号位法
    ①最高有效位有进位,符号位无进位→正溢出
    ②最高有效位无进位,符号位有进位→负溢出

下面举例说明双符号位补码法用法,
在这里插入图片描述
下面举例说明单符号位法用法,
在这里插入图片描述

  • 67
    点赞
  • 211
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值