Day01-JS整数是怎么表示(存储)的

164 阅读1分钟

初级水平: 根据国际标准 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;最小值类似