1.浮点数
浮点数(floating point)这个名字其实就来自于:"小数点可以浮动(移动)"。

double类型的最大有效位数为16位。"有效位数(significant digits)" 指的是数字中能被精确区分的位数。

指数位的308是怎么算的?
指数位是 11 位,即共有:
2¹¹ = 2048 种可能取值(0 ~ 2047)
其中:
-
全 0(0)用于表示 "非规格化数(denormalized number)"
-
全 1(2047)用于表示 "无穷大(∞)或 NaN"
-
其它(1 ~ 2046)才是真正的指数范围
IEEE 754 使用一个"偏移量(bias)"来存储指数:
真实指数 = 存储的指数值 - 1023
那么,
最小有效指数值 = 1 - 1023 = -1022
最大有效指数值 = 2046 - 1023 = +1023
那么2^1023 约等于 10^308次方。
"308" 是由 double
的 11 位指数表示范围(−1022 到 +1023)转换成 10 的指数得出的近似范围。
2.指数和尾数

1.23 × 10² = 123
1.23 × 10⁵ = 123000
1.23 × 10⁻³ = 0.00123
"1.23" 这部分对应 尾数位
"10² / 10⁵ / 10⁻³" 这部分对应 指数位