浮点运算方法和浮点运算器
浮点加法、减法运算
浮点乘法、除法运算
浮点运算流水线
浮点运算器实例
浮点加法、减法运算
1、浮点加减运算
设有两个浮点数x和y,它们分别为
x=2Ex·Mx
y=2Ey·My
其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是
x±y=(Mx2Ex-Ey±My)2Ey,
设Ex<=Ey
浮点数的加法、减法运算
设有两个浮点数的分别为X=Mx*2Ex,Y=My*2Ey,实现浮点加减法算的基本步骤分为四步完成:
0操作数检查:用来判断两个操作数中是否有一个为0.
对阶操作:即比较两个浮点数的阶码值的大小,求E=Ex-Ey,然后将小阶对大阶。
尾数进行加或减运算:实现尾数的加减运算,执行两个完成对阶后的浮点数的求和(差)的过程
浮点加法、减法运算
规格化:若得到的结果不满足规格化规则,就必须把它变成规格化的数。
规格化规则:尾数的符号为01或10时,绝对值大于1,尾数右移1位,阶码+1
尾数的符号为11或00时,补码表示的数往左移n位,
注意:在执行对阶或右规操作时,会使位数低位上的一位或若干位的数值被移掉,使数值精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用。
浮点加减法运算
舍入
(1) “0舍1入”法,即右移时丢掉的最高位为0,则舍去;是1,则将尾数的末位加1(相当于进入)。
(2)“恒置1”法,即不管移掉的是0还是1,都把尾数的末位置1。
溢出处理
阶码最高位为00或11不溢出
[E]补=01 XX…X为上溢,真正溢出,需做溢出处理。
[E] 补=10 XX…X为下溢,浮点数值趋于零,用机器零表示。
浮点加法、减法运算
浮点加法、减法运算
[例25] 设x=22×,y=-24×
1、0操作数检查(非0)
2、对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐;
若△E=0,表示两数阶码相等,即Ex=Ey;
若△E>0,表示Ex>Ey;
若△E<0,表示Ex>Ey。
当Ex≠Ey 时,要通过尾数的移动以改变Ex或Ey,使之相等。
解:浮点表示为:
[X]浮= 00 010,0. 11011011
[Y]浮= 00 100,1. 01010100
(1)对阶
原则:小阶向大阶
设△E>0,表示Ex>Ey,则移动y的尾数,My右移△E位,问题:为什么要小阶向大阶看齐?
阶差=Ex-Ey=00 010- 00 100 =11 110
即阶差为-2,Mx右移两位,Ex加2
[X]浮=00100, (11)
+
(2)尾数求和
(11)
(11)
(3)规格化和舍入处理
结果的符号位与最高符号数值位相同,应执行左规处理,所谓左规格化的规则,就是尾数左移1位,阶码减1,(10) ,阶码为00 011
舍入处理,采用0舍1入法处理,则有
1. 0 0 0 1 0 1 0 1
+ 1
1. 0 0 0 1 0 1 1 0
判溢出
阶码的符号位为00,不溢出。所以最终的结果为: X+Y=2011*(-)
6浮点运算方法和浮点运算器 来自淘豆网m.daumloan.com转载请标明出处.