我目前正在学习JavaScript,我很惊讶没有内置的方法来处理二进制数。我必须使用最多2 ^ 4096的整数,所以我不能使用JS整数来进行微积分。
我的第一个想法是使用1和0的数组。但这并不令人满意,因为简单乘以2需要移动整个表。
那么我如何才能有效地使用JavaScript中的二进制数?
我不想使用任何库。我对它是如何工作感兴趣,而不是使用其他的抽象。
答案 0 :(得分:1)
Javascript没有任何大整数类型,因此您需要使用数组来保存那么多信息。
0和1值的数组可以很容易地为它实现函数,但效率不高。
Javascript中的常规数字是双精度浮点数,因此它可以容纳52位数字信息(ref),但是您可以使用稍微少于远离任何舍入误差的数字,例如48位
Javascript中的按位运算符使用32位整数,即当与按位运算符一起使用时,double会转换为32位整数。如果要对数据使用按位运算符,则可以选择在数组中为每个项目存储32位。
答案 1 :(得分:0)
JavaScript仅支持53位整数。
存储“大整数”的最佳方法是将它们转换为服务器端的字符串。如果您想操纵它们,我建议您查看此库https://github.com/rauschma/strint