浮点数的加减运算:阶码运算和尾数运算分开进行。浮点数的加减运算一律采用补码。分为以下几个步骤 1、 对阶 目的是使得两个数的阶码相等。先求阶差,然后小阶向大阶看齐的原则,将阶码小的尾数右移移位,阶加1,直到阶码相等为止。尾数右移时,舍弃有效位会产生误差,影响精度。 2、 尾数求和 将对阶后的尾数按定点数加减运算规则运算 3、 规格化 以双符号位为例,当尾数大于0时,其补码规格化形式为
当尾数小于0时,其补码规格化形式为
左规和右规,正数是正常逻辑,负数因为补码不同需要注意
4、 舍入:在对阶和右规的过程中,可能会将尾数低位丢失,引起误差,影响精度,常见的舍入方法有:0舍1入和恒1法 0舍1入法:类似十进制的四舍五入,尾数右移时,被移去的最高位值为0,则舍去,最高值为1,则在尾数末尾加1,这样做可能会使尾数又溢出,此时再做一次右规 恒1法:尾数右移时,不论最高位值是否为1,右端尾数恒置1.这种方法同样有使尾数变大变小的可能。 5、 溢出判断 浮点数的溢出与否,由阶码决定。以双符号位补码为例,当阶码的符号位出现01时,即阶码大于最大阶码,表示上溢,进入中断处理。当阶码符号位出现10时,即阶码小于最小阶码,表示下溢,按机器0处理。 6、 强制类型转换