理解浮点数的基数与范围、精度的关系

前提:两种浮点数长度相同、格式相同,前者基数大、后者基数小。

基数与精度的关系

首先,把浮点数的基数理解为,阶码每变化一位,尾数小数点所需要移动的位数。

并且要知道,浮点数的精度是指相邻两个浮点数之间的最小差值

在日常生活情况下,我们会把精度认为是小数位越多,精度就越高,然而浮点数的精度却不是这么理解的。

所以,当基数越大的时候,每次阶码变化一位,尾数小数点所移动的位数就越多,例如基数为2时,只需移动一位,基数为4时,需要移动两位,那么举个例子,从(0.5-0.25的差值)>(0.25-0.0625的差值),所以基数越大,数据的离散程度越大,其精度降低

基数与范围的关系

浮点数基数对比示例(β=2 vs β=4)

假设浮点格式​(总长度8位):

  • 符号位​(1位):0正1负
  • 阶码​(3位):偏移码(偏移量=3),实际指数 $ E = \text{阶码值} - 3 $
  • 尾数​(4位):规范化为 $ 1 \leq M < \beta $

1. β=2(二进制)

  • 阶码范围:$ E = -3 \sim 4 $
  • 尾数范围\(1.0000_2 \leq M < 1.1111_2\)(十进制:$ 1 \leq M < 1.9375 $)
  • 数值范围
    • 最大正数:$ 1.9375 \times 2^4 \approx 31 $
    • 最小正数:$ 1.0000_2 \times 2^{-3} = 0.125 $
  • 精度(间隔)​
    • 1.0附近:相邻数间隔为 $ 0.0625 $(如 1.01.0625)。
    • 最大值附近:间隔为 $ 1.0 $。

2. β=4(四进制)

  • 阶码范围:$ E = -3 \sim 4 $
  • 尾数范围\(1.0000_4 \leq M < 3.3333_4\)(十进制:$ 1 \leq M < 3.99609375 $)
  • 数值范围
    • 最大正数:$ 3.99609375 \times 4^4 \approx 1023 $
    • 最小正数:$ 1.0000_4 \times 4^{-3} = 0.015625 $
  • 精度(间隔)​
    • 1.0附近:相邻数间隔为 $ 0.00390625 $(如 1.01.00390625)。
    • 最大值附近:间隔仍为 $ 1.0 $。

对比表格

参数 β=2(二进制) β=4(四进制)
最大正数 ≈31 ≈1023
最小正数 0.125 0.015625
1.0附近间隔 0.0625 0.00390625
最大值附近间隔 1.0 1.0

关键结论

  1. 范围扩展:基数越大,阶码缩放能力越强(β=4的最大值是β=2的33倍)。
  2. 精度分布
    • 基数增大时,​小数区域精度更高​(β=4在1.0附近的间隔更小)。
    • 但在大数区域,两者的绝对间隔相同(均为1.0),但β=4的相对精度更差(因数值范围更大)。

posted on 2025-03-31 20:19  swj2529411658  阅读(414)  评论(0)    收藏  举报

导航