《计算机组成与体系结构(原书第4版)》 —2.5.5 表数范围、精度和准确度

举报
华章计算机 发表于 2019/11/19 16:21:11 2019/11/19
【摘要】 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.5.5节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。

2.5.5 表数范围、精度和准确度

当讨论浮点数时,重要的是理解这些术语:表数范围、精度和准确度。范围非常简单,因为它表示在给定格式中从最小值到相同格式最大值的间隔。例如,16位2的补码的整数范围是-32768~+32767。IEEE-754双精度浮点数的范围在图2-3中已给出。即使有这么大的范围,我们知道仍有无穷多个数并不在IEEE-754规定的范围内。浮点数完全可以工作的原因是,在这个范围内总会有一个数接近你想要的数。

人们对范围理解的没有问题,但对精度和准确度经常会混淆。准确度是指数字接近其真实值的程度。例如,我们不能用浮点表示0.1,但我们可以在这个范围内找到一个相对接近0.1的数或相当准确的数。另一方面,精度涉及对一个值我们有多少信息和有多少信息量用于表示该值。1.666是一个有4位精度的十进制数字;1.6660是有5位精度的十进制数字,它们同样都是准确的数。第二个数并不比第一个数准确度高。

准确度必须放在上下文中——想知道一个值多么准确,我们必须知道它是多接近它的预期值或“真值”。当我们看两个数字时,不能仅仅因为第一个数的精度位数更多,就立即说第一个比第二个更准确。

虽然它们是分开的,但精度和准确度却是相关的。更高的精度通常使值更准确,但并不总是这样。例如,我们可以将值1表示为整数、单精度浮点数或双精度浮点数,但每种都是同样(精确)准确的。另一个示例,考虑3.13333作为π的估计值。它有6位数的精度,但准确度只有两位数。增加更多的精度并不能提高准确度。

另一方面,当0.4×0.3时,准确度取决于精度。如果只允许有一个小数位的精度,那么结果是0.1(它接近但不完全是结果)。如果允许有两个小数位的精度,则得到0.12,这就准确地反映了答案。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。