如何在JavaScript中将整数移位31?

时间:2016-07-21 03:45:13

标签: javascript binary integer bit-manipulation

在ECMA5中,它表示按位运算符和移位运算符以32位整数运算,因此在这种情况下,最大安全整数为2 ^ 31-1或2147483647。

但是,最大安全整数否则为2^53 - 1

对于我的程序,我需要处理2 ^ 32和2 ^ 53之间的整数。

所以,我的问题:

目前在我的代码中我做了类似的事情:

value |= (byte & 127) << (7 * i);

这不适用于过去4的i,因为它将超过31的最大班次范围。

唯一的替代方案就是......这个? (仍在努力)

value += (byte & 127) * Math.pow(10, i * 7);

不完全正确,但足够接近这一点..基本上必须模拟ORing到一个bithift来绕过31个移位限制的JavaScript限制。

有更好的方法吗?

0 个答案:

没有答案