【发布时间】:2018-11-15 10:27:10
【问题描述】:
我使用的是浏览器内的 Javascript,而不是 NodeJS。我有两个 Uint8Arrays ...
var d1 = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255])
var d2 = new Uint8Array([255, 255, 255, 255, 237, 49, 56, 0])
每个元素都恰好有 8 个元素,它们是 0 到 255 之间的整数。每个数组代表一个更大的数字。比如第一个数组代表正整数
0xffffffff
我的问题是如何将 d1 除以 d2 并得到结果?我读到 Javascript 中整数的最大值是 2^53,我相信它小于我可以拥有的最大数字。我不在乎结果是什么对象类型,但 Uint8Array 对我来说很好。
【问题讨论】:
-
如果您所在区域的每一项都代表数字中的一个“地点”,那么您的第一个数字远大于 0xffffffff。这是
256 ** 8。除非我误解了您是如何从数组中获取整数的。 -
btw 8 字节 = 2^64 = 18446744073709552000 > Number.MAX_SAFE_INTEGER = 9007199254740991
-
使用大整数库。一个好的应该支持 Uint8Arrays 作为输入和输出。
标签: javascript arrays division bigint uint8array