【计算机组成原理】加减运算和溢出判断
作者:互联网
溢出情况
溢出知乎发生在同符号位置的加法运算:例如:
(-123)+(-123) 发生溢出
123+123 发生溢出
原码加运算
原码减运算
加法溢出
减法运算可以转成加法运算。
公式 :正+正=负数 说明溢出
负+负=正数 说明溢出
减法会被转化成加法
设机器字长为8位(含1位符号位),A= 15,B=-24,C=124,求[A+C]补和[B-C]补
[A+C]补=0,0001111+0,1111100= 1,0001011 真值-117(溢出)
[B-C]补= 1,1101000 +1,0000100=0,1101100 真值+108 (溢出)
加法运算,符号位会参与运算。
逻辑运算
用逻辑电路实现溢出判断
与或非 判断
其实就是
公式 :正+正=负数 说明溢出
负+负=正数 说明溢出
异或判断
进位位(carry)与溢出位(overflow)的区别
溢出标志OF和进位标志CF是两个意义不同的标志.
进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;
溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。
只有当两个相同符号数相加,而运算结果的符号与原数据符号相反时,产生溢出;
采用双符号(异或判断)
当两个符号不一样时候就表示溢出了。最高符号位表示本来的符号,后面一个符号表示溢出。因此采用异或异或运算就可以判断出 溢出了。
双符号位(异或):计算机数字读入内存后,拷贝一份符号位的和原理的符号位组成双符号位,双符号不会改变原来数字的存储。
标签:运算,符号,加减,异或,123,加法,溢出 来源: https://www.cnblogs.com/cdaniu/p/16390297.html