提问人:stancallewier 提问时间:12/20/2022 更新时间:4/25/2023 访问量:87
机器精度和底溢之间的差异
Difference between machine precision and underflow
问:
我不明白机器精度和下溢之间的区别。以单精度系统为例:机器精度为10^-7,底溢精度为1.18*10^-38。 这意味着 1.18 *10^-38 是你可以用这个系统表示的最小数字,但是这个系统的精度(机器精度)怎么可能大得多。 如果计算机在存储数字方面可以如此精确,为什么在机器精度上不能如此精确呢?
答:
这两个指标描述了不同的信息现象。当一个数字太小而无法表示给定的架构时,就会发生下溢。精度限制;另一方面,建立了给定架构可以提供的大量精度(即精度)。这里有一个简单的(人为的)例子来帮助做出区分。也许一个给定的拱门可以存储数字 .000000000001(即 1x10^-12 或 1 万亿分之一)。但它不能将值 pi 存储到小数点右侧的 8 位以上(例如,它只能存储 3.14159265。你上面的问题是;从本质上讲,“如果我给定的架构可以存储小到 1 万亿分之一 (10^-12) 的数字,为什么它不能同时利用小数点右边的所有这些地方将 pi 存储到小数点右边的 12 位。 请注意,非常大和非常小的数字可以用IEEE浮点格式表示,因为IEEE格式为指数留出数字存储区域的一部分!指数可以很容易地将给定的数字(例如,1.0)“缩放”到非常大(1.0 x 2^30)或极小(1.0 x 2^-30)。布乌特...这样的架构已经“权衡”了其分配的部分内存空间,以换取指数......以表示数字尾数的剩余位数为代价(即,该数字被指数缩放......在我的示例中是“1”)。换句话说:我们有有限数量的位来表示一个数字。我们可以将更多的位用于指数,或者将更多的位用于尾数。指数的位数越多,就可以产生更大和更小(幅度)数字的能力。尾数的位数越多,数字的精度就越高。如你所知...在一个资源有限的世界里......一切都是权衡取舍。希望能有所帮助。
评论