网站大量收购独家精品文档,联系QQ:2885784924

第六讲浮点数和浮点运算器检错、纠错码.ppt

第六讲浮点数和浮点运算器检错、纠错码.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六讲浮点数和浮点运算器检错、纠错码

第一单元 第六讲 浮点数和浮点运算器 检错、纠错码 内容提要 浮点数 科学表示法 十进制科学表示法 二进制科学表示法 IEEE 754 浮点数标准 计算机内的浮点数表示 表示范围 vs. 表示精度 数制转换 数据类型 计算机内的数据 计算机的功能:处理数据 n 位能表示哪些数据 ? 无符号整数: 0 to 2n - 1 有符号整数: -2(n-1) to 2(n-1) - 1 其它数据呢 ? 大整数? (如:一个世纪的秒数) 3,155,760,00010 (3.1557610 x 109) 非常小的数? (如:原子的直径) 0.0000000110 (1.010 x 10-8) 有理数 (如:循环小数) 2/3 (0.666666666. . .) 无理数 21/2 (1.414213562373. . .) 无限不循环小数: e (2.718...), ? (3.141...) 科学计数法 规格化形式: no leadings 0s (小数点前仅有1位非0数字) 1/1,000,000,000的不同表示形式: 规格化: 1.0 x 10-9 非规格化: 0.1 x 10-8, 10.0 x 10-10 二进制的科学计数法 浮点数的算术运算 二进制小数点不是固定在某位上 C语言中的 float型数据 浮点数的计算机内部表示 规格化形式: +1.xxxxxxxxxx2*2yyyy2 字长的整数倍 (32 bits) 上溢和下溢 上溢 数值太大( 2.0x1038) 阶的值超出8位能表示的范围 下溢 数值太小 0, 2.0x10-38 阶码超出了8位二进制位能表示的范围 如何减少上溢和下溢? 双精度浮点数 使用双字 (64 位) IEEE 754 浮点数标准 被几乎所有计算机采纳 (自1980年起) 符号位: 有效位: 使用原码表示 规格化小数中,隐含最高位1 单精度为:1 + 23 位,双精度为 1 + 52 位 0 有效数 1 0 不可能出现为1的位 在阶码中保留0给数0 阶的移码表示 在IEEE 754中,浮点数的阶不用补码表示,采用移码表示 最小的阶: 000000012 最大的阶: 111111102 移码: 在真正的阶上加一个规定的值 对单精度浮点数:+127 对双精度浮点数:+1023 1.0 * 2-1 IEEE 754 的阶 可以在没有浮点运算器的情况下使用浮点数 直接使用整数比较 将浮点数分解成三个部分:符号位,阶和有效数 可进行快速比较 直接作为两个定点小数比较 尾数 尾数用原码表示 最高位为1 含义: 十进制: 1.6732 = (1x100) + (6x10-1) + (7x10-2) + (3x10-3) + (2x10-4) 二进制: 1.1001 = (1x20) + (1x2-1) + (0x2-2) + (0x2-3) + (1x2-4) 浮点数的二—十进制转换 浮点数十—二进制转换 (1/2) 简单情况:如果除数是2的整数倍,则比较简单 如: -0.75的二进制 -0.75 = -3/4 -112/1002 = -0.112 规格化为: -1.12 x 2-1 (-1)S x (1 + Significand) x 2(Exponent-127) (-1)1 x (1 + .100 0000 ... 0000) x 2(126-127) 浮点数十—二进制转换(2/2) 除数不是2的整数倍 该数无法精确表示 可能需要多位有效位来保证精度 难点:如何得到有效位? 循环小数有一个循环体 转换 求出足够多的有效位. 根据精度要求(单、双)截断多余的位。 按标准要求给出符号位、阶和有效位。 特殊的浮点数值 Not a Number 下列结果是什么: sqrt(-4.0)or 0/0? 如果无穷大不是错误的话,那以上也不算 称其为 Not a Number (NaN) 阶 = 255, 有效位非0 应用 NaNs 可帮助排错 自包含: op(NaN, X) = NaN 千万不要用它 请教数学家 非规格化数 问题:在0周围还有一些空隙没有用来表示浮点数 最小的正数: a = 1.0… 2 * 2-126 = 2-126 次小的正数: b = 1.0 … 01 2 * 2-126 = 2-126 + 2-150 a - 0 = 2-126 b - a = 2-150 解决办法: 使用非规格化数:没有隐含的前导1 最小的正数: a = 2-150 次小的正数: b = 2-149 舍入 浮点数的算术运算 = 舍入 类型转换时也需要舍入 Double ? single pr

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档