初级水平: 根据国际标准 IEEE 754,JavaScript 内部,所有数字都是以64位(一个字节8位)浮点数形式储存,即使整数也是如此。所以有,1 === 1.0 (二进制存储最大值=2^n-1)
中级水平:理解存储方式 结果=(-1)^s * f * 2^e,f是连续的,e不连续
- 符号位(sign),用第1位:符号位,
0表示正数,1表示负数 - 指数(exponent),用第2位到第12位(共11位):指数部分 分正负,e范围: 0--2047(2^11-1)
- 尾数(fraction),用第13位到第64位(共52位):有效数字 f是一个小数,范围: [1,2)
进一步分析:fraction是一个小数,整数部分固定为1,所以52个二进制位只存储小数部分就可以了。所以加上整数部分1后,最大数 Number.MAX_SAFE_INTEGER = Math.pow(2,53)-1;最小值类似