javascript - 在javascript中实现256位掩码的最有效方法?
问题描述
我希望代表一个 256 位数并对其进行一些按位运算。我需要像这样向左和 AND 多次移位:
while(mask <= test){
if((mask & test) === mask) return 1;
mask = mask << 1n;
}
例如,如果mask = 0b101
它将与0b1010
and匹配0b10011011
;
对于 256 位的测试值,最快的方法是什么?我考虑了以下几点:
大整数
这是最自然的方式。不幸的是,Safari 不支持这个原语,这是激发这个问题的原因。无论如何,也许有更好的方法。
1 和 0 的矩阵
也许是最直接但也是效率最低的。
Uint32Array
可以使用 8 个 32 位元素的数组。会很好,但有两个问题。一,不保证元素顺序,二,整个数组的位移将是一个巨大的痛苦。
WebAssembly
我真的不想这样做。
还有其他方法吗?
解决方案
推荐阅读
- c - 如何将文件中的字符串加载到C中的链接列表中?
- python - 将文件复制到新目标时,带有父文件夹名称的 Python 前缀文件名
- cloud - 如何在监控选项卡下编辑 Informatica 云中的状态设置
- asp.net-core - EF Core在发生异常时如何回滚先前的事务
- python-3.x - 如何让 Python 在我的 Raspberry Pi 上再次工作?
- dialogflow-es - 如何使用 Dialogflow CX API 向 webhook 传递参数? 似乎detectIntent() 设置会话queryParams 不起作用
- css - 通过 CSS 更改 ioslides 中的子弹类型
- javascript - 过滤覆盖的孔,然后将其推送到数据层而不重复
- javascript - 有没有办法在 React JSX 中内联执行“if/else if/else”语句(也就是检查多个条件)?
- assembly - 使用 MIPS 32 汇编语言,如何使用 addu 和 ori 命令加载和添加 4 个整数?