1、浮点数的加减法运算,完成浮点数加减法的5个步骤:1.对阶操作2.尾数的加减运算3.规格化操作4.舍入(0舍1入法)5.检查阶码是否溢出,设有两浮点数X,Y。均为规格化数。,1.对阶,小阶向大阶对齐,尾数右移,原码:符号位不参加移位,尾数数值部分的高位补0 补码:符号位参加右移,并保持原符号位不变为减小误差,保留右移中丢失的最高位(舍入时会用到),2.尾数的加减运算,对阶后,尾数进行加/减运算,3.规格化操作,当第二步得到的和/差不是规格化数时,需转变成规格化数。 原码: 00/11. 1 补码: 00. 1 11. 0 若两个符号位不同,则溢出。 右规:将尾数右移一位,阶码E+1 若两个符号位
2、相同,不溢出。但若最高数值位=符号位,则: 左规:将尾数连续左移,直到最高数值位符号位。同时,阶码E-移位的位数。,左规与右规的例子,11.0001 + 00.100111.1010 最高数值位=符号位 尾数左移一位,阶码-1,00.0101 + 00.110101.0010 两个符号位不同 尾数右移一位,阶码+1 当尾数溢出时,则右规, 即出现01. 或10. ,4.舍入,在执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度受到影响,常用0舍1入法。0舍1入法:当丢失的最高位的值为1时,最低数值位+1。当丢失的最高位的值为0时,舍去丢失的各位的值。若尾数的末位加1后又使尾数溢出,则要再进行一次右规。,若尾数的末位加1后又使尾数溢出,则要再进行一次右规,例:00.11111100丢失的最高位的值为1,最低数值位+100.1111+ 101.0000尾数溢出,进行一次右规,尾数变为00.1000 ,阶码+1,5.检查阶码是否溢出,阶码溢出,则浮点数一定溢出。 若阶码不溢出,结束运算。 若阶码溢出 下溢,置运算结果为机器零。上溢,置溢出标志。,例题:x2(+10) 0.1101,y=2(+01) 0.1011,求x+y,舍入用0舍1入法。,对阶:,尾数相加规格化操作舍入判溢出,谢谢!,