在JavaScript中存储非常大的二进制数的最佳方法是什么?

时间:2013-10-12 16:36:34

标签: javascript binary biginteger bitarray

我目前正在学习JavaScript,我很惊讶没有内置的方法来处理二进制数。我必须使用最多2 ^ 4096的整数,所以我不能使用JS整数来进行微积分。

我的第一个想法是使用1和0的数组。但这并不令人满意,因为简单乘以2需要移动整个表。

那么我如何才能有效地使用JavaScript中的二进制数?

我不想使用任何库。我对它是如何工作感兴趣,而不是使用其他的抽象。

2 个答案:

答案 0 :(得分:1)

Javascript没有任何大整数类型,因此您需要使用数组来保存那么多信息。

0和1值的数组可以很容易地为它实现函数,但效率不高。

Javascript中的常规数字是双精度浮点数,因此它可以容纳52位数字信息(ref),但是您可以使用稍微少于远离任何舍入误差的数字,例如48位

Javascript中的按位运算符使用32位整数,即当与按位运算符一起使用时,double会转换为32位整数。如果要对数据使用按位运算符,则可以选择在数组中为每个项目存储32位。

答案 1 :(得分:0)

JavaScript仅支持53位整数。

存储“大整数”的最佳方法是将它们转换为服务器端的字符串。如果您想操纵它们,我建议您查看此库https://github.com/rauschma/strint