- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六、七、八讲(算法与实现)(证明不讲)
(4) 舍入处理 (3) 规格化处理 乘积的尾数符号位与最高数值位符号相同, 不是规格化的数,需要左规, 阶码变为00 101(-3), 尾数变为 1.0100101,0010100。 尾数为负数, 取尾数高位字长,按舍入规则, 舍去低位字长,故尾数为1.0100101 。 最终相乘结果为 其真值为 x?y=2-3 ? (-0.1011011) [x?y]浮=00 101,1.0100101 * 设有两个浮点数x和y, 它们分别为: 浮点加、减法运算 其中 Ex 和 Ey 分别为数x和y的阶码, Mx 和 My为数x和y的尾数。 两浮点数进行加法和减法的运算规则是: x±y=(Mx2Ex-Ey±My)2Ey Ex = Ey x=2Ex · Mx y=2Ey · My 完成浮点加减运算的操作过程大体分为四步: (1) 0 操作数的检查; (2) 比较阶码大小并完成对阶; (3) 尾数进行加或减运算; (4) 结果规格化。 (5) 舍入处理。 (6)溢出处理。 使二数阶码相同(即小数点位置对齐),这个过程叫作对阶。 ? 先求两数阶码 Ex 和 Ey之差,即△E = Ex-Ey 若△E = 0,表示 Ex=Ey 若△E 0, ExEy 若△E 0, ExEy 通过尾数的移动来改变Ex或Ey,使其相等. ? 对阶原则 阶码小的数向阶码大的数对齐; 小阶的尾数右移,每右移一位,其阶码加1(右规)。 (2) 对阶 (1) 0 操作数检查 例: x=201×0.1101, y=211×(-0.1010), 求x+y=? 解:为便于直观了解,两数均以补码表示,阶码、尾数均采用 双符号位。 [x]补=00 01, 00.1101 [y]补=00 11, 11.0110 [△E]补= [ Ex]补-[Ey]补= 00 01+11 01 = 11 10 △E = -2, 表示Ex比Ey小2, 因此将x的尾数右移两位. 右移一位, 得 [x]补=00 10, 00.0110 再右移一位, 得 [x]补=00 11, 00.0011 至此, △E=0, 对阶完毕. 尾数求和方法与定点加减法运算完全一样。 对阶完毕可得: [x]补=00 11, 00.0011 [y]补=00 11, 11.0110 对尾数求和: 00.0011 + 11.0110 11.1001 即得: [x+y]补=00 11, 11.1001 (3) 尾数求和运算 (4) 结果规格化 求和之后得到的数可能不是规格化了的数, 为了增加有效数字的位数, 提高运算精度,必须将求和的结果规格化. ①规格化的定义: (二进制) 对正数: S=00.1×××…× 对负数: S=11.0×××…× 采用双符号位的补码: 采用原码: 正数: S=0.1 ×××…× 负数: S=1.1 ×××…× 若不是规格化的数,需要尾数向左移位,以实现规格化的过程,我们称其为向左规格化。 ②向左规格化 前例中, 00 11, 11.1001不是规格化数,因而需要左规,即左移一位,阶码减1,得: [x+y]补=00 10, 11.0010 ③向右规格化 浮点加减运算时,尾数求和的结果也可能得到: 01.×××…× 或 10.×××…×, 即两符号位不等,即结果的绝对值大于1。向左破坏了规格化。 此时,将尾数运算的结果右移一位,阶码加1,称为向右规格化。 例:两浮点数 x=0.1101 ?210 , y=(0.1011) ?201, 求x+y。 解: [x]补=00 10,00.1101 [y]补=00 01,00.1011 对阶: [△E]补= [ Ex]补-[Ey]补=00 10+ 11 11= 00 01 y向x对齐,将y的尾数右移一位,阶码加1。
文档评论(0)