




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理,PrinciplesofComputerOrganization,广义双语教学课程,09/skyclass25/,青岛理工大学校级精品课程,2,第6章计算机的运算方法,(6),Floating-pointcomputationinacomputercanrunintothreekindsofproblems:,Anoperationcanbemathematicallyillegal,suchasdivisionbyzero.,Anoperationcanbelegalinprinciple,butnotsupportedbythespecificformat,forexample,calculatingthesquarerootof1ortheinversesineof2(bothofwhichresultincomplexnumbers).,Anoperationcanbelegalinprinciple,buttheresultcanbeimpossibletorepresentinthespecifiedformat,becausetheexponentistoolargeortoosmalltoencodeintheexponentfield.Suchaneventiscalledanoverflow(exponenttoolarge)orunderflow(exponenttoosmall).,3,6.4浮点四则运算,Floating-PointArithmetic,浮点加减法运算,浮点乘法运算,Floating-PointMultiplication,Floating-PointAddition&Subtraction,浮点除法运算,Floating-PointDivision,4,浮点运算Floating-PointArithmetic,浮点运算要把阶码和尾数分别处理。,阶码的运算是定点整数运算,对阶码的运算有四种:阶码加1,阶码减1,两阶码求和,两阶码求差。,尾数的运算是定点小数运算。,运算过程中一般取双符号位。,浮点运算器总是由处理阶码和处理尾数的两部分组成。,Floating-pointrepresentationissimilarinconcepttoscientificnotation.Thewayinwhichthesignificand,exponentandsignbitsareinternallystoredonacomputerisimplementation-dependent.,5,浮点数的溢出Overflow,当一个数的大小超出了浮点数的表示范围时,机器无法表示该数,就发生溢出。浮点数的溢出判断方法与定点数不同,是对规格化数的阶码Exponent进行判断。,当浮点数的阶码大于机器所能表示的最大阶码时(即阶码发生正溢出),称为溢出或上溢,此时机器应停止运算,进行出错中断处理。,当浮点数的阶码小于机器所能表示的最小阶码时(即阶码发生负溢出),称为下溢。这时一般规定把该浮点数的尾数强迫置零,作为零处理,机器可继续运行。,当一个浮点数的尾数为0,不论其阶码为何值,或者阶码的值小于等于它能表示的最小数值(下溢)时,不论其尾数为何值,计算机都把该浮点数看成零值,称为机器零。,浮点数的尾数运算的溢出可以通过右规消除。,6,浮点加减法运算Floating-PointAddition&Subtraction,设有两个规格化浮点数,X=MX2Ex,Y=MY2Ey,若两数的阶码相等,即EX=EY,有,X+Y=,将两浮点数的尾数相加,就可得到浮点形式的和。,一般情况下,EXEY,计算X+Y要用如下五个步骤来完成:,对阶尾数相加规格化舍入检查阶码是否溢出。,1、浮点加法运算Floating-PointAddition,MX2Ex+MY2Ey,=(MX+MY)2Ex,7,(1)对阶Alignment,两数相加,必须使小数点对齐。对于浮点数来说,就是使阶码相等。使阶码相等的过程称为对阶。,对阶的原则是:小的阶码向大阶码看齐。,对阶操作,首先比较两数的阶码值的大小,即求E=EXEY,并保留其最大值E=MAX(EX,EY)作为和的阶码。,当E0时,将阶码小的数的尾数右移|E|位。,尾数每右移一次将阶码加1,直至E0。,为了减少误差,可用附加线路(Guardbits保留位)保留右移出的1位或几位的高位,在以后的舍入操作时用。,(2)尾数相加AddtheSignificands(Mantissa),完成对阶后,将两浮点数的尾数部分相加,方法与定点小数加法相同。,8,(3)规格化处理NormalizetheResult,当运算结果的尾数部分不是规格化数(即不是00.1或11.0的形式)时,必须进行规格化处理。,规格化处理的规则:,若结果尾数的两个符号位不同(01或10),表明尾数运算结果溢出,应进行右规。将结果尾数右移一位,并将阶码的值加1。,若尾数的运算结果不溢出,但最高数值位与符号位同值(即11.1或00.0),则应进行左规。,将尾数连同符号位一起左移一位,并将和的阶码减1,如此反复直至尾数最高数值位与符号位不同为止。,9,(4)舍入操作Round,在进行对阶或右规操作时,尾数低位的一位或几位数值被移出。如果采用“截断法”把移出的数位丢掉,会影响数值的精度。因此,可采用舍入法来减少误差。,“0”舍“1”入法,当移出部分的最高位为1时在尾数末位加1,为0时则舍去移出的数值。此方法的最大误差为2(n+1)。,“0”舍“1”入法由于有舍有入,舍入机会均等,有利于减少误差积累。但对末位加1的操作可能引起一连串的进位而使尾数溢出,此时还要再做一次右规。,末位恒置1法,无论右移丢失的是何数值,一律将结果的末位置1。,把尾数最低位的0置成1,对于正数,是使其值变大,对于负数补码和反码,则使其值变小。而舍入前尾数最低位已经是1时,再置1无实际效用,与截断法无异。,10,(5)检查阶码是否溢出ChecktheExponentOverfloworUnderflow,若阶码正常,加减运算正常结束;若阶码下溢,要置运算结果为浮点形式的机器零;若阶码上溢,则置溢出标志。,【例1】浮点数的阶码为4位补码,尾数为9位补码。,X0.110110112010,Y=(0.10101100)2100,求X+Y=?,Roundingisusedwhentheexactresultofafloating-pointoperation(oraconversiontofloating-pointformat)wouldneedmoredigitsthantherearedigitsinthesignificand.Thereareseveraldifferentroundingschemes(orroundingmodes).,11,例1浮点数的阶码为4位补码,尾数为9位补码。求X+Y=?,X0.110110112010,Y=(0.10101100)2100,,解:,EX补=0010,EY补=0100,-EY补=1100,MX补=0.11011011,MY补=1.01010100,对阶,E补=EX补EY补=EX补-EY补=00010+11100=11110,即E2。由于X的阶码小,应使MX右移两位,EX加2,,尾数相加,12,规格化处理,结果的符号位与最高数值位同值,应进行左规。,尾数左移1位,阶码减1。,MX+Y补=11.0001010110,EX+Y补=00011,舍入处理,采用0舍1入法,MX+Y补=11.00010110,判断溢出,补码表示的阶码的符号位为00,不溢出。结果:,MX+Y补=1.00010110,EX+Y补=0011,XY(0.11101010)2011,例1浮点数的阶码为4位补码,尾数为9位补码。求X+Y=?,13,2、浮点数减法Floating-PointSubtraction,对阶,尾数相减,规格化,舍入,检查阶码是否溢出。,浮点数减法运算的步骤:,Thefactthatfloating-pointnumberscannotfaithfullymimictherealnumbers,andthatfloating-pointoperationscannotfaithfullymimictruearithmeticoperations,leadstomanysurprisingsituations.Thisisrelatedtothefiniteprecisionwithwhichcomputersgenerallyrepresentnumbers.,14,浮点乘法运算Floating-PointMultiplication,两浮点数相乘,乘积的尾数为相乘两数的尾数之积,阶码为两数的阶码之和。即,XY,浮点乘法运算可分为四个步骤:,阶码相加,尾数相乘,规格化和舍入处理,判断溢出,(MX2Ex)(MY2Ey)=,(MXMY)2Ex+Ey,规格化浮点数,X=MX2Ex,Y=MY2Ey,Tomultiply,thesignificandsaremultipliedwhiletheexponentsareadded,andtheresultisroundedandnormalized.,阶码相加AddExponent,乘数和被乘数的阶码按定点整数补码或移码加法的规则相加,得到乘积的阶码。,尾数相乘MultiplySignificands(Mantissa),乘数和被乘数的尾数按定点小数(原码或补码)乘法运算的方法相乘,得到乘积的尾数。,规格化和舍入处理Normalizing&Round,规格化和舍入方法与浮点加减法处理的方法相同。但两个数值位是m位的数相乘,乘积的数值位为2m位。舍入处理后,尾数只保留m个数值位。,一般情况下,两个规格化数相乘,尾数最多左规一次,因为两个纯小数相乘是不会溢出的。但是有一个特例,当尾数做补码乘法的时候,如果乘数和被乘数尾数的值都是-1,则乘积的尾数的值是+1,此时需要做一次右规。,16,判断溢出ChecktheExponentOverfloworUnderflow,检查阶码是否溢出。若阶码正常,加减运算正常结束;若阶码下溢,要置运算结果为浮点形式的机器零;若阶码上溢,则置溢出标志。,Floating-pointarithmeticisatitsbestwhenitissimplybeingusedtomeasurereal-worldquantitiesoverawiderangeofscales(suchastheorbitalperiodofIoorthemassoftheproton),andatitsworstwhenitisexpectedtomodeltheinteractionsofquantitiesexpressedasdecimalstringsthatareexpectedtobeexact.,Anexampleofthelattercaseisfinancialcalculations.Forthisreason,financialsoftwaretendsnottouseabinaryfloating-pointnumberrepresentation.,17,【例2】浮点数,阶码为4位移码(含1符号位),尾数为8位补码(含1符号位),阶码以2为底。,X0.11100112-101,Y=(0.1110010)2011,求X*Y=?,解:,MX补=,MY补=,阶码相加,EXEY移=,EX移=,0.1110011,=00011,0011,EY移=,1.0001110,=01011,1011,00110,=00011+00011=,EX移EY补,EX补=,EY补=,1011,0011,00011,+00011,00110,例2浮点数,阶码为4位移码(含1符号位),尾数为8位补码(含1符号位),阶码以2为底。,尾数相乘,规格化和舍入处理,判断溢出,MX补MY补=,已经是规格化数。,MX*Y补=1.0011010,移码表示的阶码为00,未溢出。,XY=,采用0舍1入法,将低n位舍去。,1.00110011001010,0.11100111.0001110=,EX*Y移=00110,X0.11100112-101,Y=(0.1110010)2011,求X*Y=?,MX补=0.1110011,MY补=1.0001110,EX*Y移=00110,2,(-0.1100110),010,19,浮点除法运算Floating-PointDivision,除了除数不能为0外,浮点除法对除数和被除数的大小没有限制。,两浮点数相除,商的尾数部分是被除数的尾数除以除数的尾数所得的商,阶码部分是被除数的阶码减去除数的阶码所得的差。,XY=,浮点除法运算分以下五个步骤:,尾数调整,阶码求差,尾数相除,规格化,判断溢出,(MX2Ex)(MY2Ey),(MXMY)2ExEy,20,尾数调整DividendAlignment,检查|MX|是否小于|MY|。,若|MX|MY|,则将MX右移一位并将阶码加1。,阶码求差SubtractExponent,被除数的阶码减去除数的阶码得到商的阶码(按定点整数补码或移码减法的规则)。,尾数相除DivideSignificands(Mantissa),两数的尾数按定点小数(原码或补码)除法的规则相除。,21,判断溢出,检查阶码是否溢出。,规格化NormalizetheResult,由于除数和被除数都是规格化数并经过尾数的调整,所以,尾数相除的结果一般是规格化定点小数。,只有一个例外,当补码表示的商为-0.5时,必须做一次左规。,IntheIEEE754standard,zeroissigned,meaningthatthereexistbothapositivezero(+0)andanegativezero(-0).Inmostrun-timeenvironments,positivezeroisusuallyprintedas0,whilenegativezeromaybeprintedas-0.Thetwovaluesbehaveasequalinnumericalcomparisons,butsomeoperationsreturndifferentresultsfor+0and0.,例3设浮点数基数为2,阶码为4位补码,尾数为5位原码(均包含1个符号位)。X=+6.5,Y=2.25。,(1)写出X和Y的规格化浮点机器数。,(2)计算XY(尾数运算用补码加减交替除法),解:,X=(+6.5)10=(+110.1)2=+0.11012+011,Y=(-2.25)10=(-10.01)2=-0.10012+010,EX补=0011EY补=0010MX原=0.1101MY原=1.1001,设浮点数格式为:,浮点机器数:,X浮点=000111101Y浮点=100101001,(1)写出X和Y的规格化浮点机器数。,(2)计算XY(尾数运算用补码加减交替除法),MX补=,尾数调整,阶码求差,尾数相除,|MX|MY|,MX补=,-EY补=,EX补EY补=,MY补=1.0111,EX补=0011EY补=0010MX原=0.1101MY原=1.1001,0.1101,MY补=,1.0111,-MY补=,需进行尾数调整,,将MX右移1位,EX加1。,EX补=,=00100+11110=,EX补+-EY补,00010,0.01101=0.0111,0100,1110,00010,0.1001,0舍1入,被除数/余数00.0111,商0.0000,X,Y异号,R补与Y补同号,商上1,末位商置1,R补与Y补异号,商上0,R补与Y补同号,商上1,R补与Y补异号,商上0,1.0011,11.1011,左移,11.0010,1.001,11.1001,0.1001,左移,00.0010,0.100,00.0001,0.0100,加MY补11.0111,左移,00.1010,0.010,00.0101,0.0010,加-MY补00.1001,左移,11.1100,0.001,11.1110,0.0001,加MY补11.0111,MY补=1.0111,加MY补11.0111,加-MY补00.1001,25,规格化,判断溢出,MXY补=1.0011,MXY原=,阶码(补码)的符号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情景交际用语课件
- 悄悄变化的我课件简介
- 幼儿园大班心脏教育活动策划方案
- 开学第一天主题班会活动方案
- 小班上学期老师个人工作方案
- 电磁感应试题及答案
- 七夕餐厅营销活动方案策划
- 定向选调面试题及答案
- 后勤管理考试题及答案
- 职业暴露试题及答案
- 血液透析患者心衰护理
- 各高校辅导员考试真题及答案
- 2025年中国IC载板行业市场调研及未来发展趋势预测报告
- 脑血管造影术病人的护理诊断
- 选矿概论-6 浮选
- 教师如何使用AI开展教学DeepSeek使用指南人工智能 课件
- 2025年铁路减振器行业深度研究分析报告
- 食品、生鲜、日用品、办公用品、商品等采购服务方案(技术标)
- 第五版PFMEA模板(自动计算AP值)
- 医务人员安全防范
- 真需求-打开商业世界的万能钥匙
评论
0/150
提交评论