javascript - 在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);
推荐阅读
- android - 如何在存储库级别发出多个流值作为对象?
- ssl - 远程服务器的“PKIX 路径构建失败:”“无法找到到所请求目标的有效证书路径”
- python - 来自 AMS 的 TMF8701 ToF 距离传感器与 Python
- python - 程序只读取一次文件
- entity-framework - 向数据库添加新记录,键始终为零
- visual-studio - 移动选项卡或对内部窗口进行排序时,Visual Studio 2015 崩溃
- arrays - 使用指针数组在 C 中初始化二维数组
- css - 如何同步两个 CSS 动画时间
- javascript - 我可以基于 HTML 元素创建操作以使用 javascript 显示和隐藏 div 吗?
- php - 我的页面上有一个单词我需要搜索并替换它,但我的代码不起作用