JavaScript是怎样编码数字的
JavaScript数字全部是浮点数。 根据 IEEE 754标准中的64位二进制(binary64), 也称作双精度规范(double precision)来储存。从命名中可以看出,这些数字将以二进制形式,使用64个字节来存储。这些字节按照以下规则分配:
0 - 51 字节是 分数f(fraction )
52 - 62 字节是 指数(exponent )
63 字节 是 标志位 (sign)
标志位 (s, sign) | 指数(e, exponent ) | 分数(f, fraction ) |
---|---|---|
(1 bit) | (11 bit) | (52 bit) |
63 | 62 | 51 |
- | 52 | 0 |
他们按照以下规则表示一个数字: 如果标志位是0, 表示这个数字为正数,否则为负数。粗略来说,分数f用来表示数字的‘数码’(0-9),指数表示这个数字的‘点’在哪里。接下来我们会使用二进制(虽然这并不是通常的浮点数表示方式)。并用一个%作为前缀来标识。虽然JavaScript数字是以二进制保存的,但输出(打印)时通常是以10进制显示。
0: false
1: true