定点数运算及溢出检测

3、数溢出的概念及其判断方法

1)溢出的概念

  运算结果超出了某种数据类型的表示范围

2)溢出的检测方法

  溢出只可能发生在同符号数相加时,包括[x]补与[y]补;[x]补与[-y]补同号;

1)方法1:对操作数和运算结果的符号位进行检测,当结果的符号位与操作数的符号不相同时就表明发生了溢出

(设X0,Y0为参加运算数的符号位,S0为结果的符号位)

 当V=1时,运算结果溢出,根据该逻辑表达式,容易画出相应电路。

2)方法2:对最高数据位进位和符号位进位进行检测

*设运算时最高数据位产生的进位为C1,符号位产生的进位为C0

溢出检测电路为:V=C0⊕C1

3)方法3:用变型补码

 

 

4、无符号数运算的溢出判断

*无符号数加法的溢出可用ALU的进位表示

*无符号数减法的溢出也可用带加/减功能的ALU的进位取反后表示

原文地址:https://www.cnblogs.com/fate-/p/12696076.html