计算机组成原理第4章浮点数运算方法.ppt
《计算机组成原理第4章浮点数运算方法.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第4章浮点数运算方法.ppt(68页珍藏版)》请在第壹文秘上搜索。
1、第4章 浮点运算规则浮点加减运算浮点乘除法运算浮点数的表示n机器中任何一个浮点数可写成:nMx为浮点数的尾数,一般为绝对值小于1的规格化数(补码表示时允许为-1),机器中可用原码或补码表示。nEx为浮点数的阶码,一般为整数,机器中大多用补码或移码表示。nR为浮点数的基数,常用2、8、10或16表示。以下以基数为2进行讨论。310123.0123XxERxMX类似于浮点加减运算n设两个浮点数 尾数的加减运算规则与定点数完全相同。当两浮点数阶码不等时,因两尾数小数点的实际位置不一样,尾数部分无法直接进行加减运算。如:x=0.123103 y=4.56102=0.456103xExRMxyEyRMy
2、浮点加减运算的步骤1.对阶,使两数的小数点位置对齐。2.尾数求和,将对阶后的两尾数按定点加减运算规则求和(差)。3.规格化,为增加有效数字的位数,提高运算精度,必须将求和(差)后的尾数规格化。4.舍入,为提高精度,要考虑尾数右移时丢失的数值位。5.判断结果,即判断结果是否溢出 1.对阶n这一步操作是将两个加数的小数点对齐。n小阶向大阶看齐,阶码较小的数,其尾数向右移,每右移一位,阶码加“1”,直到两数阶码相同为止。n尾数右移时可能会发生数码丢失,影响精度。n例:两浮点数例:两浮点数 x=0.1101x=0.11012 20101,y=-(0.1010)y=-(0.1010)2 21111,求,
3、求x+yx+y。(1)首先写出x、y在计算机中的补码表示。x补=00,01;00.1101,y补=00,11;11.0110 阶码EX 尾数Mx Ey My(2)在进行加法前,必须先对阶,故先求阶差:E补=Ex补-Ey补=Ex补+-Ey补 =00,01+11,01=11,10 即E=-2,表示x的阶码比y的阶码小,再按小阶向大阶看齐的原则,将x的尾数右移两位,其阶码加2。得x补=00,11;00.0011(01)此时,E=0,表示对阶完毕。2.尾数求和n将对阶后的两个尾数按定点加(减)运算规则进行运算。n注意:并不考虑溢出溢出由阶码决定 接上例,两数对阶后得:x补=00,11;00.0011(
4、01)y补=00,11;11.0110 则Mx+My补=00.0011+11.0110=11.1001(01)即x+y补=00,11;11.1001(01)3.规格化n如果采用双符号位的补码,则当M0时,其补码规格化形式为 M补=00.1 当M0时,其补码规格化形式为 M补=11.0 n但对M0时,有两种情况需特殊处理。M=-1/2,则M补=11.1000。对于补码而言,它不满足于上面的规格化表示式。为了便于硬件判断,特规定-1/2是规格化的数(对补码而言)。M=-1,则M补=11.0000。因小数补码允许表示-1,故-1视为规格化的数。n规格化又分左规和右规两种。左规。当尾数出现00.0或1
5、1.1时,需左规。左规时尾数左移一位,阶码减1,直到符合补码规格化表示式为止。右规。当尾数出现01.或10.时,表示尾数溢出,这在定点加减运算中是不允许的,但在浮点运算中这不算溢出,可通过右规处理。右规时尾数右移一位,阶码加1。接上例,求和结果为x+y补=00,11;11.1001(01)尾数的第一数值位与符号位相同,需左规,即将其左移一位,同时阶码减1,得x+y补=00,10;(1)11.0010(1)。4.舍入n在对阶和右规的过程中,可能会将尾数的低位丢失,引起误差,影响精度,为此可用舍入法来提高尾数的精度。n进行舍入时应满足两个要求n首先,对每一次运算的结果而言,要保证误差不超过给定的范
6、围。比如,设机器尾数长39位,要求每次运算误差不超过末位(即第39位)的“1”,即小于 2-39。n其次在大量的运算过程中要保证误差的平衡,即在每一次运算时,由于舍入处理,可能使运算结果增大了,也可能减少了。但总的说来,增加和减少的机会必需是均等的,否则会产生很大的积累误差。4.舍入常用的舍入方法n“0舍1入”法:“0舍1入”法类似于十进制运算中的“四舍五入”法,即在尾数右移时,被移去的最高数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。这样做可能使尾数又溢出,此时需再做一次右规。n特点:最大误差是最低位上的-1/2到接近于1/2之间,正误差可以和负误差抵消。属于比较理想的方法
7、,但实现起来比较复杂。如上例:x+y补=00,10;(1)11.0010(1)=00,10;11.0011n“恒置1”法:尾数右移时,不论丢掉的最高数值位是“1”或“0”,都使右移后的尾数末位恒置“1”。这种方法同样有使尾数变大和变小的两种可能。n特点:误差范围扩大,但正负误差可以相互抵消,实现相对容易。5.溢出判断n在浮点规格化中已指出,当尾数之和(差)出现01.或10.时,并不表示溢出,只有将此数右规后,再根据阶码来判断浮点运算结果是否溢出。n若机器数为补码,尾数为规格化形式,并假设阶符取2位,阶码取7位,数符取2位,尾数取n位,则它们能表示的补码在数轴上的表示范围如下图。A最小负数最小负
8、数 2+127(-1)B最大正数最大正数 2+127(1-2-n)a最大负数最大负数 2-128(-2-1-2-n)b最小正数最小正数 2-1282-1 n浮点机的溢出与否可由阶码的符号决定。即阶码E补=01,为上溢。阶码E补=10,为下溢,按机器零处理。当阶符为“01”时,需做溢出处理。n下溢时,浮点数值趋于零,故机器不做溢出处理,仅把它作为机器零。n上溢时才是浮点数真正溢出,机器需停止运算,作溢出中断处理。n一般所说的浮点溢出,均是指上溢。n例:设x=2-101(-0.101000),y=2-100(+0.111011),并假设阶符取2位,阶码取3位,数符取2位,尾数取6位,求x-y。n解
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 浮点 运算 方法