计算机组成原理-溢出-算术移位的溢出

溢出-算术移位的溢出

  • 补码定点数加减运算溢出的三种判断方法
  • 算术移位的溢出

补码定点数加减运算溢出的三种判断方法

首先这里提前说明,为了方便解释,下面的方法只涉及加法,即使是减法运算,也化成加法运算

  1. 单符号法
    只有当两个同号的操作数相加才可能发生溢出;运算结果与两个操作数异号,则发生溢出
  2. 双符号法
    00-正;11-负;01-正溢出;10-负溢出
  3. 单符号与进位联合判断
    [x]补 = S_0 | X_0 X_1 X_2 …… X_N
    S_0 为符号位, X_0为信息为最高位, s为符号位进位, x为最高位进位
    根据运算结果,当s ≠ x 时,溢出

算术移位的溢出

在二进制表示中,乘2表示左移1位;除2表示右移一位
首先算术右移时不会发生溢出的
算术左移时:X = S_0 | X_0 X_1 X_2 …… X_N
X为原码表示时:最高位为1,左移一位溢出;
X为反码表示时,最高位为0,左移一位溢出;
X为补码表示时,符号位≠最高位,左移一位溢出;

这里解释一下补码情况
X = S_0 | X_0 X_1 X_2 …… X_N
扩展成双符号表示 X = S_0 S_0 | X_0 X_1 X_2 …… X_N
左移一位 S_0 X_0 | X_1 X_2 …… X_N X_N+1
当S_0≠X_0,溢出

你可能感兴趣的:(计组,补码,计算机组成原理)