在 JS 中对两个长十六进制值执行按位运算的最有效方法是什么?



我试图对两个128字节的十六进制值执行AND操作。比如:

let toReturn = (parseInt(bytesA, 16) & parseInt(bytesB, 16)).toString(16);

对于不长于0xfffffff的值似乎工作得很好。再多一点,我就开始得到不正确的值了。

我考虑过迭代这两个值-一个字节一个字节,但我的整体代码变得有点沉重,各种128字节的值需要在一个循环中进行8次比较,这嵌套在另一个循环中(最多50次迭代),所有这些都在页面加载。

我希望能找到一个更有效的解决方案。

使用BigInt:

let toReturn = (BigInt('0x' + bytesA) & BigInt('0x' + bytesB)).toString(16);

最新更新