1

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

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

那么如何在 JavaScript 中有效地处理二进制数呢?

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

4

2 回答 2

1

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

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

Javascript 中的常规数字是双精度浮点数,因此它可以保存 52 位的数字信息(ref),但您可以使用稍微少一点的值来避免任何舍入错误,例如 48 位。

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

于 2013-10-12T16:55:08.207 回答
0

JavaScript 仅支持 53 位整数。

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

于 2013-10-12T16:59:40.267 回答