补码运算溢出判断的原理 15
补码运算溢出时可以通过最高位与次高位进位来判断:若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,则表明加减运算产生了溢出。但是为什么可以用这种方法判断呢?这种...
补码运算溢出时可以通过最高位与次高位进位来判断:若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,则表明加减运算产生了溢出。但是为什么可以用这种方法判断呢?这种方法的原理是什么?求解 谢谢!
展开
2个回答
展开全部
5.2.2 溢出及补码溢出的判断 无论采用何种机器数,只要运算的结果大扮带于数值设备所能表示数的范围,就会产生溢出。 溢出现象应当作一种故障来处理,因为它使结果数发生错误。异号两数相加时,实际是两数的绝对值相减,不可能产生溢出,但有可能出现正常进位;同号两数相加时,实际上是两数的绝对厅世芦值相加,既可能产生溢出,也可能出现正常进位。 由于补码运算存在符号位进位自然丢失而运算结果正确的问题,因此,应区分补码的溢出与正常进位。 [例5] 某数字设备用五位二进制表示数,计算 (1)返哗9+3 (2)-9-3 (3)9+12 (4)-9-12 解:(1)[+9]补+[+3]补= 01001+ 00011 = 01100 = +12 正确; (2)[-9]补+[-3]补= 10111+ 11101 = 110100 = 10100(符号位进位自然丢失),其真值为-1100 = -12正确; (3)[+9]补+[12]补= 01001 + 01100 = 10101 其真值为-1011 =-11错误,产生了溢出; (4)[-9]补+[-12]补 = 10111+10100 = 101011 其真值为01011= +11 错误,产生了溢出。 (1)、(2)两题结果均正确,查其最高位和次高位的进位位,不是均无进位产生,就是均产生进位;(3)、(4)两题结果均错误,查其最高位和次高位的进位位,只有一位产生了进位。此即为判断机器是正常进位还是溢出的基本依据,在微型机中可用异或电路来实现上述的判断。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
补码的最高位是符号位,其余各位,都代表数值。
发生溢出时,运算结果的符号,将与预期不符。
原因:
当数值位太大,其进位,进到了符号位,这就干扰了结果的符号。
使得运算结果符号不正确,这就溢出的特征。
但是,如果此时,符磨历号位的运算,也出现进位侍差呢?
这将使得符号老游皮恢复为正确,这就没有发生溢出。
那么,符号位的进位、数值位的进位,这两个进位,
如果同时为 1、或同时为 0,就不会溢出。
反之,这两个进位,不同,就必然是溢出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询