《计算机组成与体系结构(原书第4版)》 —2.5.5 表数范围、精度和准确度
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,这就准确地反映了答案。
- 点赞
- 收藏
- 关注作者
评论(0)