目录
1.浮点数的加减运算
1.1 运算步骤
(1)对阶(小向大对齐);
(2)尾数相加;
(3)浮点数规范化;
(4)舍入操作;
(5)判断溢出。
1.1.1 对阶
需要注意的是阶码小的要向阶码大的对齐,这样误差更小,如:
对阶操作可能会引起尾数最低几位数据移出,对此涉及到1.1.4的舍入操作。
1.1.2 尾数相加减
对阶后,将尾数相加减,如果是加法的话直接加,减法的话变成加上减数的补码然后再加。
1.1.3 规格化处理
尾数相加减后,需要进行规格化处理,处理的步骤可参考这篇,说得很清楚:
浮点数的规格化
1.1.4 舍入操作
在对阶和规范化的右规过程中,可能会把尾数的低几位舍弃,如:
这时,我们需要进行舍入操作来减小误差,一般采用“0舍1入法”:
当舍弃的最高位为1时,舍弃后在尾数的最低位加1,否则直接舍弃。
1.1.5 判断阶码是否溢出
若阶码下溢,则结果置为机器0,若阶码上溢,则置溢出标志。
1.2 举个例子
2.浮点数的乘除操作
2.1 操作步骤
(1)阶码相加减;
(2)尾数乘除运算;
(3)浮点数规范化;
(4)舍入操作;
(5)判断阶码溢出;
后三步和浮点数的加减操作类似
2.1.1 阶码相加减
阶码常用移码表示,注意移码的加减公式:
[X+Y] 移= [X]移 + [Y]补
这里有移码的介绍:移码介绍
2.1.2 尾数乘除运算
将尾数换位原码,然后用原码一位乘、恢复余数法或加减交替法
定点数的乘除法