《计算机系统白中英第4版第二章浮点数.ppt》由会员分享,可在线阅读,更多相关《计算机系统白中英第4版第二章浮点数.ppt(21页珍藏版)》请在第壹文秘上搜索。
1、1尾数部分M阶码部分Eesemsmk位n位1位1位尾数部分M阶码部分Eesemsmk位n位1位1位阶码,常为纯整数尾数,常为纯小数浮点数浮点数小数点的位置不固定,根据需要而浮动。小数点的位置不固定,根据需要而浮动。任何一个数任何一个数N N的浮点表示形式为的浮点表示形式为 N=MN=M2 2E E2.1 数据与文字的表示方法0+1+0+1-1+2122)21(knX最大正数knX222最小正数12)(21kX最小负数绝对值最大负数0.1021.0.0第n位K个0K K个个1 11.1.020.0.1n n个个0 01.0121.1.0n个1K个1浮点数的表示范围浮点数的表示范围若阶码数值部分为
2、若阶码数值部分为K K位,尾数数值部分为位,尾数数值部分为n n位,均用补码表示,则位,均用补码表示,则2.1 数据与文字的表示方法3规格化的浮点数规格化的浮点数为了充分利用尾数的有效数位,规定尾数值为了充分利用尾数的有效数位,规定尾数值应在应在0.510.51之间。之间。补码表示时,尾数的最高位应与符号位不同补码表示时,尾数的最高位应与符号位不同当当 1/2=M 1 1/2=M 1 时,应有时,应有0.1 0.1 的形式的形式当当 1=M -1/2 1=M -1/2 时,应有时,应有1.0 1.0 的形式的形式为什么是,而不是=?为什么是 0,0,表示表示E E E E;E E 0,0,表示
3、表示E E EEy y时,则时,则MMy y ,E Ey y+1+1E Ex xE1|1,溢出。,溢出。右规右规:MMz z,E Ez z+1+1。当尾数为当尾数为11.1.11.1.或或00.0.00.0.时,时,|M|Mz z|0.5|0.5左规左规:MMz z,E Ez z-1-115浮点加减运算舍入处理舍入处理对阶或右规时,尾数右移,尾数的低位部分对阶或右规时,尾数右移,尾数的低位部分被丢掉,造成一定误差,要进行舍入处理。被丢掉,造成一定误差,要进行舍入处理。简单的舍入方法有三种:简单的舍入方法有三种:恒舍法:移出的位直接舍去,对保留部恒舍法:移出的位直接舍去,对保留部分不做任何修改。
4、分不做任何修改。0 0舍舍1 1入法:右移出的位为入法:右移出的位为0 0则舍去,为则舍去,为1 1则将尾数的末位加则将尾数的末位加“1”1”。末位恒置一法:只要数位被移出,就在末位恒置一法:只要数位被移出,就在尾数的末尾恒置尾数的末尾恒置“1”1”。IEEE754IEEE754标准标准就近舍入、朝就近舍入、朝0 0、+、-舍入舍入16溢出判断溢出判断浮点数溢出主要体现在阶码的溢出,机器必浮点数溢出主要体现在阶码的溢出,机器必须做中断处理。须做中断处理。阶码上溢阶码上溢 阶码大于可表示的最大正数,阶码大于可表示的最大正数,看作看作+、-阶码下溢阶码下溢 阶码小于可表示的最小负数,看作机阶码小于
5、可表示的最小负数,看作机器零器零浮点加减运算 例例2525 设设X X2 20100100.11011011,0.11011011,Y Y2 2100100(0.10101100),0.10101100),求求X+YX+Y。解解 两数均以补码表示,阶码双符号位,尾数单符号位。它们的两数均以补码表示,阶码双符号位,尾数单符号位。它们的浮点表示为浮点表示为 浮浮00 010,0.11011011 00 010,0.11011011 浮浮00 100,1.0101010000 100,1.01010100 求阶差,对大阶求阶差,对大阶 E EE EE E E E 补补+-+-E E 补补00 010
6、+11 10000 010+11 10011 11011 110 X X的阶码小,应使的阶码小,应使MMx x 右移右移2 2位,位,E Ex x 加加2 2 XX浮浮00 10000 100,0.00110110(11)0.00110110(11)尾数求和尾数求和 00.00110110(11)00.00110110(11)11.0101010011.01010100 11.10001010(11)11.10001010(11)-2-2规格化处理规格化处理 尾数运算结果为尾数运算结果为11.10001010(11)11.10001010(11)符号位与最高数值位同值,应执行左规处理。符号位与
7、最高数值位同值,应执行左规处理。尾数左移尾数左移1 1位,阶码减位,阶码减1 1。结果:尾数为结果:尾数为11.00010101(1)11.00010101(1),阶码为,阶码为00 01100 011舍入处理舍入处理 采用采用0 0舍舍1 1入法,结果为入法,结果为00 01100 011,1.000101101.00010110溢出判断溢出判断 阶码符号位为阶码符号位为0000,不溢出,故得最终结果为,不溢出,故得最终结果为 浮浮00 01100 011,1.000101101.00010110 浮浮(-0.11101010)-0.11101010)2 201101119浮点运算器计算机实
8、现浮点运算计算机实现浮点运算软件实现:利用定点运算部件,根据算法流软件实现:利用定点运算部件,根据算法流程图,编写浮点四则运算子程序供用户调用程图,编写浮点四则运算子程序供用户调用低档机,结构简单,速度慢。低档机,结构简单,速度慢。设置可选浮点协处理器设置可选浮点协处理器8028780287和和8038780387,速度较快。,速度较快。将协处理器与将协处理器与CPUCPU集成集成8048680486以后的以后的CPUCPU。采用浮点流水运算部件,形成流水作业。采用浮点流水运算部件,形成流水作业。进一步加快浮点运算的速度。进一步加快浮点运算的速度。奔腾以后的奔腾以后的CPUCPU。20浮点运算
9、器80X87美国美国IntelIntel公司生产的专用浮点数运算的处理器,配合公司生产的专用浮点数运算的处理器,配合80X86CPU80X86CPU进行工作,所以又称为进行工作,所以又称为协处理器协处理器。80X8780X87与主与主CPUCPU的并行工作的并行工作80X8780X87有自己的浮点运算指令,但不能读写主存,有自己的浮点运算指令,但不能读写主存,真正的读写主存的工作是由主真正的读写主存的工作是由主CPUCPU执行。执行。主主CPUCPU从主存读取浮点运算指令,送从主存读取浮点运算指令,送80X8780X87,由,由80X8780X87译码并执行。译码并执行。80X8780X87运算期间,主运算期间,主CPUCPU取下一条其他指令予以取下一条其他指令予以执行,因而实现了并行工作。执行,因而实现了并行工作。如如80X8780X87执行过程中,主执行过程中,主CPUCPU又送来了一条浮点又送来了一条浮点指令,则指令,则80X8780X87给出给出“忙忙”信号。信号。当当80X8780X87完成浮点运算,取消完成浮点运算,取消“忙忙”信号,主信号,主CPUCPU才发送下一条浮点运算指令。才发送下一条浮点运算指令。80X8780X87可处理多种数据类型可处理多种数据类型整数、浮点数、压缩十进制数等。整数、浮点数、压缩十进制数等。2180X87的内部结构