浮点数
Chunbin Lv4

浮点数的存储结构

浮点数的表示借鉴了科学计数法
浮点数的储存结构被分为:符号位S、指数位E、尾数位M
公式为:
$
N=\left( -1\right) ^{S}\times M\times 2^{E}
$

例子:

十进制 二进制 二进制科学计数法 S E-1023 M
23.0 10111 1.0111*2^4 0 4 1.0111

可以看出指数位E决定了可表示的数的范围尾数位决定了浮点数的精度

双精度浮点数

js采用的IEEE754双精度64位来表示浮点数

  • 第63位为符号位S,0表示正数,1表示负数
  • 第52-63位为指数位E,取值范围为2^11=2048,但是指数部分有正有负,所以取中值1023,指数取值为E-1023
  • 第0-51位为尾数位M,有52位,但是浮点数第一位默认是1,所以是53位数即-2^53-1~2^53,即为Number.MAX_SAFE_INTEGER,9007199254740991

参考文章

number-precision
浮点数的底层原理和精度损失问题
浮点数字还原

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量