目录
一、定点数补码加减运算
二、标志位的生成
OF:Overflow Flag bit,溢出标志位(只对有符号数加减有意义)
SF:Sign Flag bit,符号标志位(只对有符号数加减有意义)
ZF:Zero Flag bit,判零标志位
CF:Carry Flag bit,进位/借位标志位(只对无符号数加减法有意义)
PF:Parity Flag bit,奇偶标志位
OF可以由最高位产生的进位S1和次高位产生的进位S2异或所得,即OF = S1 ⊕ S2
CF可以由最高位产生的进位S1和sub加减控制信号异或所得,即CF = S1 ⊕ sub
三、定点数的移位运算
算术移位:通过改变各个数码位与小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘法、除法。
原码的算术移位:符号位不变,仅对数值位进行移位。
右移——高位补0,低位舍弃,若舍弃不为0,丢失精度;
左移——低位补0,高位舍弃,若舍弃不为0,出现严重误差。
反码的算术移位:正数与原码一样,负数与原码不同
负数右移——高位补1,低位舍弃;
负数左移——低位补1,高位舍弃。
补码的算术移位:正数与原码、反码一样
补码是原码的反码低位加一所得,所以补码的前半部分同反码,后半部分同原码
负数右移——高位补1,低位舍弃;
负数左移——低位补0,高位舍弃。
逻辑移位:右移则高位补0低位舍弃,左移则低位补0高位舍弃,视作对无符号数处理。
循环移位:用移出去的位,补上空缺的位。带CF标志位一起的循环,称为大循环,不带则是小循环。
四、定点数的乘法运算
原码的乘法运算
补码的乘法运算
五、定点数的除法运算
原码的除法运算
补码的除法运算
六、浮点数的加减运算
浮点数加减运算步骤
- 对阶:小阶向大阶对齐
- 尾数加减:阶数不变
- 规格化:保证尾数的第一个数值位是一个有效位
- 舍入:①截断法;②0舍1入法;③末尾恒置1法
- 判溢出:根据双符号是否一样panduan