JS能表示的数值范围

   JS能表示的范围为是2-1075~21024(开区间)大小的数,当大于等于最大值/小于等于最小值时会发生正向溢出/负向溢出
那这个取值范围是咋的得出的?
看这个问题前我们应该先看一看js底层的如何表示数!


JS的所有数值都是以64位浮点数形式存储的,也就是JS底层没有整数,只有浮点数,某些运算需要整数的JS会把64位浮点数转换为32位整数的形式再进行运算

JS的64位
第一位:用来表示正负 0表示正 1表示负
第2~第12位 (共11位)用来表示指数部分(决定大小)
第13~第64位(共52位) 用来表示小数部分(决定精度)

这需要额外补充一点:
(如果指数部分的值在0到2047之间(不含两个端点),那么有效数字的第一位默认总是1,不保存在64位浮点数之中。也就是说,有效数字这时总是1.xx…xx的形式,其中xx…xx的部分保存在64位浮点数之中,最长可能为52位。因此,JavaScript 提供的有效数字最长为53个二进制位。)

那么重点来了:
JS有11位指数部分,那么能表示的最大的数是2047(211-1)因为除去0,分出了一半表示负数,则能表示的范围是2-10232^1024^(开区间),因为会出+0和-0所以左边是1023,又因为还有小数位52位所以范围是2^-1075^21024(开区间)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值