《计算机系统-白中英(第4版)第二章浮点数.ppt》由会员分享,可在线阅读,更多相关《计算机系统-白中英(第4版)第二章浮点数.ppt(21页珍藏版)》请在三一办公上搜索。
1、阶码,常为纯整数,尾数,常为纯小数,浮点数小数点的位置不固定,根据需要而浮动。任何一个数N的浮点表示形式为 N=M2E,2.1 数据与文字的表示方法,浮点数的表示范围若阶码数值部分为K位,尾数数值部分为n位,均用补码表示,则,2.1 数据与文字的表示方法,规格化的浮点数为了充分利用尾数的有效数位,规定尾数值应在0.51之间。补码表示时,尾数的最高位应与符号位不同当 1/2=M 1 时,应有0.1 的形式当 1=M-1/2 时,应有1.0 的形式,为什么是,而不是=?,为什么是=?,2.1 数据与文字的表示方法,补码的表示范围比原码宽,可以表示-1,-1补=1.0000000,是规格化的浮点数,
2、-1/2原=1.1000000-1/2补=1.1000000不是规格化的浮点数,浮点数的典型值:阶码和尾数均用补码表示,2.1 数据与文字的表示方法,X1移=27+1101101=10000000+1101101=11101101X1补=01101101,X2移=27+(-1101101)=10000000-1101101=00010011 X2补=10010011,移码:在真值X的基础上加一个常数,相当于X在数轴上向正方向偏移了若干单位。X移码=偏置值+X标准偏置值:字长n+1位时,偏置值为2n。例:字长8位,若偏置值为27,X1=+1101101,X2=-1101101,求移码。,2.1
3、数据与文字的表示方法,2.1 数据与文字的表示方法,移码、补码和真值之间的关系设字长8位,偏置值为标准偏置值27,移码的特点(字长8位,偏置值为27)移码最高位为0表示负数,最高位为1表示正数。移码直观反映真值的大小。全0时,所对应的真值最小;全1时,所对应的真值最大;有利于两个浮点数进行阶码的大小比较0的移码表示形式唯一+0移=-0移=10000000移码将真值映射到正数域,可视为无符号数同一真值的补码和移码只相差符号位。,2.1 数据与文字的表示方法,IEEE754标准的浮点数:应用于80X86微机,32位短浮点数,64位长浮点数,80位临时浮点数,32位短浮点数1.尾数隐含了最高位1(位
4、权20),实际为24位,尾数采用原码表示。2.阶码采用偏置值为127的移码表示。,2.1 数据与文字的表示方法,(2)计算出阶码真值e=移码-偏置值127 e=1000 0010-111 1111=011=(3)10(3)写出尾数(包括隐含的最高位1)1.M=1.011011(4)写出此数的浮点记数形式X=(-1)s 1.M 2e=+1.011011*23=1011.011(5)转换成十进制数,并加上符号位 11.375,例1:若短浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。(1)将十六进制数转换成二进制数,写成短浮点数格式,2.1 数据与文字的表示方法,正
5、数,阶码的移码(8位),隐含了最高数位1的尾数的原码(23位),例2:将(20.59375)10转换成短浮点数格式(1)把十进制数转换为二进制数(20.59375)10=(10100.10011)2(2)写成浮点记数形式,尾数保留最高位1,不计入。10100.10011=1.0100 10011*24(3)计算出阶码的移码 1111111+100=1000 0011(4)以短浮点数格式存储该数 41A4C000H,2.1 数据与文字的表示方法,2.6 浮点运算方法和浮点运算器,浮点加减运算设有两个浮点数X和Y,它们分别为 X2Ex MX Y2Ey MY完成浮点加减运算的操作过程:0 操作数的检
6、查求阶差,对大阶尾数相加减结果规格化舍入处理溢出判断,浮点加减运算,0 操作数检查如果判知两个操作数或中有一个数为0,则没有必要再进行后续的一系列操作,以节省运算时间。求阶差,对大阶:只有两浮点数阶码相同时,才可以进行尾数的加减运算。求阶差E EE E 0,表示EE;E 0,表示EE;E 0,表示EE。,浮点加减运算,对大阶大阶浮点数尾数左移会引起最高有效位的丢失,造成很大误差。因此,对阶时,总是小阶浮点数向大阶浮点数对齐,称为对大阶。小阶的尾数右移,阶码加1。ExEy时,则My,Ey+1ExEy时,则Mx,Ex+1右移的位数等于阶差E,直到两数的阶码相等为止。,浮点加减运算,尾数求和运算其方
7、法与定点加减法运算完全一样Mx+MyMz结果规格化当尾数为01.或10.,|Mz|1,溢出。右规:Mz,Ez+1。当尾数为11.1.或00.0.时,|Mz|0.5左规:Mz,Ez-1,浮点加减运算,舍入处理对阶或右规时,尾数右移,尾数的低位部分被丢掉,造成一定误差,要进行舍入处理。简单的舍入方法有三种:恒舍法:移出的位直接舍去,对保留部分不做任何修改。0舍1入法:右移出的位为0则舍去,为1则将尾数的末位加“1”。末位恒置一法:只要数位被移出,就在尾数的末尾恒置“1”。IEEE754标准就近舍入、朝0、+、-舍入,溢出判断浮点数溢出主要体现在阶码的溢出,机器必须做中断处理。阶码上溢阶码大于可表示
8、的最大正数,看作+、-阶码下溢阶码小于可表示的最小负数,看作机器零,浮点加减运算,例25 设X20100.11011011,Y2100(0.10101100),求X+Y。解两数均以补码表示,阶码双符号位,尾数单符号位。它们的浮点表示为 浮00 010,0.11011011 浮00 100,1.01010100,求阶差,对大阶 EEEE补+-E补00 010+11 10011 110 X的阶码小,应使Mx 右移2位,Ex 加2 X浮00 100,0.00110110(11)尾数求和 00.00110110(11)11.01010100 11.10001010(11),-2,规格化处理 尾数运算结
9、果为11.10001010(11)符号位与最高数值位同值,应执行左规处理。尾数左移1位,阶码减1。结果:尾数为11.00010101(1),阶码为00 011舍入处理 采用0舍1入法,结果为00 011,1.00010110溢出判断 阶码符号位为00,不溢出,故得最终结果为 浮00 011,1.00010110 浮(-0.11101010)2011,浮点运算器,计算机实现浮点运算软件实现:利用定点运算部件,根据算法流程图,编写浮点四则运算子程序供用户调用低档机,结构简单,速度慢。设置可选浮点协处理器80287和80387,速度较快。将协处理器与CPU集成80486以后的CPU。采用浮点流水运算
10、部件,形成流水作业。进一步加快浮点运算的速度。奔腾以后的CPU。,浮点运算器80X87,美国Intel公司生产的专用浮点数运算的处理器,配合80X86CPU进行工作,所以又称为协处理器。80X87与主CPU的并行工作80X87有自己的浮点运算指令,但不能读写主存,真正的读写主存的工作是由主CPU执行。主CPU从主存读取浮点运算指令,送80X87,由80X87译码并执行。80X87运算期间,主CPU取下一条其他指令予以执行,因而实现了并行工作。如80X87执行过程中,主CPU又送来了一条浮点指令,则80X87给出“忙”信号。当80X87完成浮点运算,取消“忙”信号,主CPU才发送下一条浮点运算指令。80X87可处理多种数据类型整数、浮点数、压缩十进制数等。,80X87的内部结构,