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

What is the best way to store very large binary numbers in JavaScript?

本文关键字:二进制数 最佳 是什么 方法 JavaScript 存储 非常      更新时间:2023-09-26

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

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

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

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

Javascript 没有任何 biginteger 类型,所以你需要使用一个数组来保存这么多信息。

0 和 1 值的数组可以轻松实现其函数,但效率不高。

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

Javascript 中的按位运算符使用 32 位整数

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

JavaScript

仅支持 53 位整数。

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