溢出判断 基本运算方法

符号位也要参加运算
减法:那就是进行变补运算 然后进行加法运算

溢出判断:
溢出情况发生在什么时候呢? 符号位相等的时候才会溢出  两个正数相加或者两个负数相加


硬件判断逻辑一:

Sa Sb Sf  表示的关系:  数A + 数B  即表示 Sa Sb  结果符号位Sf  符号位进位Cf 尾数最高位进位 C

也就是 两个正数 或两个负数 相加之后符号位变化  那么 就表示溢出

硬件判断逻辑二:
数据高位进位,符号位进位未进位,溢出。
数据位高位未进位,符号位进位,溢出。
数据位高位进位,符号位进位,不溢出。
数据位高位未进位,符号位未进位,不溢出。

硬件判断逻辑三:双符号位 
这便是用11,00分别作为负数,正数且未溢出的标识,10,01则分别是负数和正数的溢出。

补码的相加减


1、补码加减的基本公式

补码加法的基本公式为:

整数 [A]补+[B]补=[A+B]补 (mod 2n+1)

小数 [A]补+[B]补=[A+B]补 (mod 2)

对于减法:

因A-B=A+(-B),则[A-B]补=[A+(-B)]补,由补码加法基本公式可得:

整数 [A-B]补=[A]补+[-B]补 (mod 2n+1)

小数 [A-B]补=[A]补+[-B]补 (mod 2)

[X+Y]补= [X]补+[Y]补         [X-Y]补= [X]补+[-Y]补 

原码的相加减

符号位单独处理  数值位加减 
求和时和的符号取被加数或者被减数的符号(前面的数是被减数被加数)
如果数值位产生进位那么表示结果溢出

1 0011 + 1 1100     符号位为 1  1111

减  被减数+减数的补码 
-3- -12 = 9   1 0011 - 1 1100  符号位单独计算   0011 - 1100 = 0011 + (1100)补= 0011 + 0100 = 0111 

最高位无进位  得到数值为的补码  需要对结果求补 = 1001 =9 符号位与被减数相反 为+ == 9


最高位有进位 数值位正确  符号取被减数的符号 前面的符号

标准移码的相加减
两个数的移码的相加减 == 两个数相加减的补码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。