定点数运算
移位运算
算术移位
-
原码算术移位
符号位保持不变,仅对数值位进行移位。无论左/右移,空位补0,移出舍弃
如,
1 0101
右移1位为1 0010
-
反码算术移位
对于正数,操作与原码相同
对于负数,符号位保持不变,仅对数值位进行移位。无论左/右移,空位补1,移出舍弃
-
补码算术移位
对于正数,操作与原码相同
对于负数,最右边的1及其右边同原码,最右边的1左边同反码,也即:右移,高位补1,低位舍弃;左移,高位舍弃,低位补0
逻辑移位
无论左/右移,空位补0,移出舍弃
循环移位
无论左/右移,移出补空位
加减运算
运算规则
- 补码相加减,结果仍为补码
- [x+y]补=[x]补+[y]补,[x-y]补=[x]补+[-y]补
- 符号位和数值位一同参与运算
在机器中,定点数以补码形式表示,故以补码为例
补码减法运算可转为加法实现,故在计算机实现加减运算时统一采用加法实现
溢出判断
符号位判别法
异号相加不会产生溢出;同号相加,结果符号与相加数同,则未溢出,异,则溢出。
设两相加数符号位分别为x0、y0,结果符号位为z0:
对V= x ‾ \overline{\text{x}} x y ‾ \overline{\text{y}} y