浮点数的加减法运算.doc

上传人:最*** 文档编号:1638272 上传时间:2019-10-31 格式:DOC 页数:13 大小:290.66KB
返回 下载 相关 举报
浮点数的加减法运算.doc_第1页
第1页 / 共13页
浮点数的加减法运算.doc_第2页
第2页 / 共13页
浮点数的加减法运算.doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
计算机组成与结构 之 浮点数的加减法运算 学生组所在学院: 燕山大学信息学院 学生组所在班级: 2014级计算机 1 班 学 生 组 姓 名: 陈朝俊 张海 傅晓欣 曲佳彤地 址:中国河北省秦皇岛市河北大街438号邮 编:066004电 话:0335-8057068传 真:0335-8057068网 址:http:/jwc.ysu.edu.cn浮点数加减法运算简介 大型计算机和高档微型机中,浮点加减法运算是由硬件完成的。低档的微型机浮点加减法运算是由软件完成的,但不论用硬件实现还是软件实现,基本原理是一致的。 浮点加减法运算要经过对阶、尾数加减运算、结果规格化、舍入处理、溢出判断五步操作。其中尾数运算与定点加减法运算相同,而对阶、规格化、舍入和溢出判断,则是浮点加减法运算和定点加减法运算不同的操作之处。在补码浮点运算中,阶码与尾数可以都用补码表示。在硬件实现的运算中,阶码和数符常采用双符号位。 浮点数的表示形式浮点数的表示形式(假设以2为底):N=M2E 其中,M为浮点数的尾数,一般为绝对值小于1的规格化二进制小数,用原码或补码形式表示;E为浮点数的阶码,一般是用移码或补码表示的整数。 阶码的底除了2以外,还有用8或16表示的,这里暂且只以2为底进行讨论。 浮点数加减法运算的步骤 设两浮点数X、Y进行加减运算,其中 :X=MX2EX ,Y=MY2EY一般由以下五个步骤完成: 规格化浮点数加减运算流程 一、对阶1.对阶是指将两个进行运算的浮点数的阶码对齐的操作。对阶的目的是为了使两个浮点数的尾数能够进行加减运算。因为,当进行MX2EX 与MY2EY加减运算时,只有使两浮点数的指数值部分相同,才能将相同的指数值作为公因数提出来,然后进行尾数的加减运算。 2.对阶的具体方法是:首先求出两浮点数阶码的差,即EEx-Ey,将小阶码加上E,使之与大阶码相等,同时将小阶码对应的浮点数的尾数右移E位,以保证该浮点数的值不变。3.几点注意: (1)对阶的原则是小阶对大阶,因为若大阶对小阶,则尾数的数值部分的高位需移出,而小阶对大阶移出的是尾数的数值部分的低位,这样损失的精度更小。 (2)若E0,说明两浮点数的阶码已相同,无需再做对阶操作。 (3)尾数右移时,对原码表示的尾数,符号位不参加移位,尾数数值部分的高位补0;对补码表示的尾数,符号位参加右移,并保持原符号位不变。 (4)由于尾数右移时是将最低位移出,会损失一定的精度,为减少误差,可先保留若干移出的位,供以后舍入处理用。二、尾数的加减运算执行对阶后,两尾数进行加/减运算,得到两数之和/差。3、 结果规格化 1.规格化的目的是使尾数部分的绝对值尽可能以最大值的形式出现。设尾数M的数值部分有n位,规格化数的范围为:1/2M原1-2-n,1/2M补1-2-n(当M为正),1/2M补1(当M为负)。2.当运算的结果(和/差)不是规格化数时,需将它转变成规格化数。双符号位的原码规格化尾数,其数值的最高位为1;双符号位的补码规格化尾数,应是00.1XXX或11.0XXX(X可为0或1)。3.规格化操作的规则是: 如果结果的两个符号位的值不同,表示加减运算尾数结果溢出,此时将尾数结果右移1位,阶码E+1,称为“向右规格化”,简称“右规”。 如果结果的两个符号位的值相同,表示加减运算尾数结果不溢出。但若最高数值位与符号位相同,此时尾数连续左移,直到最高数值位与符号位的值不同为止;同时从E中减去移位的位数,这称之为“向左规格化”,简称“左规”。4、 舍入处理1.浮点运算在对阶或右规时,尾数需要右移,被右移出去的位会被丢掉,使运算结果精度受到影响。为减少精度损失,可以将一定位数的移出位先保留起来,称为保护位,在规格化后用于舍入处理。 2.IEEE754标准列出了四种可选的舍入处理方法: (1)0舍1入: 这是标准列出的默认舍入方式,相当于十进制中的“四舍五入”,即当丢失的最高位的值为1时,把这个1加到尾数末位上进行修正(若加1后又使尾数溢出,则再进行一次右规),否则舍去丢失的各位的值。(2)朝+舍入: 对正数来说,只要多余位不为全0,则向尾数最低有效位进1;对负数来说,则是简单地舍去。 (3)朝-舍入:与朝+舍入方法正好相反,对正数来说,只是简单地舍去;对负数来说,只要多余位不为全0,则向尾数最低有效位进1。 (4)朝0舍入:简单地截断舍去,而不管多余位是什么值。这种方法处理简单,但容易形成累积误差。 五、溢出判断 与定点数运算不同的是,浮点数的溢出是以其运算结果的阶码的值是否产生溢出来判断的。若阶码的值超过了阶码所能表示的最大正数,则为上溢,置溢出标志,若此时浮点数为正数,则为正上溢,记为+,若浮点数为负数,则为负上溢,记为-;若阶码的值超过了阶码所能表示的最小负数,则为下溢,若此时浮点数为正数,则为正下溢,若浮点数为负数,则为负下溢。正下溢和负下溢都作为0处理(通常将阶码和尾数全部置0)。要注意的是,浮点数的表示范围和补码表示的定点数的表示范围是有所不同的,定点数的表示范围是连续的,而浮点数的表示范围可能是不连续的。如下图所示。【例】两浮点数相加,求X+Y。已知:X2 0.11011011,Y2 (0.10101100),求XY。解:X和Y在运算器中的浮点补码表示形式为(双符号位): 阶符 阶码 数符 尾数X: 00 010 00 11011011Y: 00 100 11 01010100(1)对阶阶差EEEE补E补00 01011 10011 110即E为2,X的阶码小,应使M右移2位,保留阶码E=00 100.M补00 00110110 11其中11表示M右移出去而保留的附加位。(2)尾数相加 M补 0 0 0 0 1 1 0 1 1 0 11 MY补 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 11(3)结果规格化尾数运算结果的符号位与最高数值位相同,应进行左规处理,结果=11 00010101 10,阶码减一,E= 00 011。(4)舍入处理采用0舍1入法处理,保护位最高位为1,在所得结果最低位+1,得 M补=11 00010110,M=-0.11101010.(5)溢出处理阶码符号位为00,故不溢出,最终结果为 :X+Y = 2 (-0.11101010)实现浮点运算的加法器逻辑电路原理框图如下图所示。图中,三个寄存器R0、R1和R2分别存放两个参加运算的浮点数和结果。第一步对阶,首先由E加法器求出两个浮点数阶码的差值,然后由控制电路控制选择小阶码浮点数的尾数进入右移寄存器进行对阶时的右移,右移结果送入尾数加法器的一个输入端,大阶码浮点数的尾数则直接送入加法器的另一个输入端;第二步尾数相加减;第三步规格化,由尾数加法器产生的结果经规格化部件,一方面送移位寄存器进行尾数移位,另一方面控制选择大阶码进行阶码的增或减操作;第四步由舍入部件对规格化后的尾数进行舍入处理,并将结果送结果寄存器的尾数字段;第五步溢出处理,由溢出判别部件对规格化后的阶码进行溢出判别,若未溢出,则将结果送结果寄存器的阶码部分。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!