首页 > 解决方案 > 在javascript中实现256位掩码的最有效方法?

问题描述

我希望代表一个 256 位数并对其进行一些按位运算。我需要像这样向左和 AND 多次移位:

            while(mask <= test){
                if((mask & test) === mask) return 1;

                mask = mask << 1n;
            }

例如,如果mask = 0b101它将与0b1010and匹配0b10011011

对于 256 位的测试值,最快的方法是什么?我考虑了以下几点:

大整数

这是最自然的方式。不幸的是,Safari 不支持这个原语,这是激发这个问题的原因。无论如何,也许有更好的方法。

1 和 0 的矩阵

也许是最直接但也是效率最低的。

Uint32Array

可以使用 8 个 32 位元素的数组。会很好,但有两个问题。一,不保证元素顺序,二,整个数组的位移将是一个巨大的痛苦。

WebAssembly

我真的不想这样做。

还有其他方法吗?

标签: javascriptperformancebitmask

解决方案


推荐阅读