1、第3章 运算器与运算方法3.5浮点运算3.5浮点运算浮点运算下面看一下十进制科学计数法的运算。X=123102,Y=456103 XY=0.1231050.456106 =(0.01230.456)106 十进制科学计数法的加减运算市先把两个数的阶码调整为相等的值,然后进行尾数的加减运算。XY=0.1231050.456106 =(0.1230.456)(105+6)=0.00560881011=0.56088109 十进制科学计数法的乘法运算是尾数相乘,阶码相加。XY=(0.123105)(0.456106)=(0.1230.456)(105-6)十进制科学计数法的除法运算是尾数相除,阶码相
2、减。计算机中的浮点数表示,是十进制科学计数法在计算机内的表示方式,所以,可以根据上述运算方法得到浮点数的运算规则。3.5.1浮点加、减法运算 设两个浮点数X和Y表示为:X=Mx*2Ex,Y=My*2Ey 则XY=(Mx*2Ex-EyMy)*2Ey,即将两个浮点数的阶码调整为相同值后,再对尾数进行加减运算。(1)对阶:对阶的目的是使X和Y的阶码相等。为了防止阶码改变时尾数的移位造成溢出错误,阶码统一取大的阶码。阶码的比较采用两阶码的减法来实现。对阶操作时,原来阶码小的数的尾数右移,右移的位数由两阶码的差值决定。3.5.1浮点加、减法运算(2)尾数相加、减:将经过对阶运算后的尾数部分进行定点小数加
3、或减的运算。(3)规格化 浮点数规格化的要求是尾数最高位的真值为1,而浮点尾数运算后的结果可能不符合规格化的要求,尾数运算也可能会发生溢出的情况,所以,要进行规格化处理。若尾数运算的结果绝对值大于1时,例如尾数的变形补码为10.XX.X,或01.XX.X,需要将尾数右移,相应地阶码增加。这称为右规。若尾数运算的结果绝对值小于1/2,例如尾数的变形补码为11.1XX.X,或00.0XX.X,就需要将尾数左移,阶码相应地减小,直至满足规格化条件为止。这个过程称为左规。3.5.1浮点加、减法运算(4)舍入处理 对阶和规格化右规时,尾数右移移出的位对运算结果的精确度有影响,可以保留下来作为警戒位。为了
4、提高运算的精度,需要对尾数采用舍入处理。常用的舍入方法有0舍1入法、恒舍法和恒置1法。3.5.1浮点加、减法运算 例3-14 已知X=11.011011B,Y=1010.1100B,在浮点机中,数符1位,阶符1位,阶码3位,尾数8位。阶码和尾数都采用补码表示。采用恒舍法计算X+Y浮。3.5.1浮点加、减法运算3.5.2浮点乘、除法运算 浮点数乘除法的运算步骤为:尾数和阶码运算:两浮点数相乘,乘积的尾数是两乘数的尾数相乘,乘积的阶码是两乘数的阶码求和。两浮点数相除,商的尾数是被除数除以除数的尾数所得的商。商的阶码是被除数的阶码减去除数的阶码得到的差。尾数规格化:对尾数运算的结果进行规格化判断,如果不符合规格化要求,要进行左规或者右规处理。尾数舍入处理:对尾数运算时多保留的数据位根据需要进行调整。阶码溢出判断:检查阶码是否溢出,若无溢出则得到运算的最后结果