Я хочу представить 256-битное число и выполнить некоторые побитовые операции с ним. Мне нужно будет сдвинуть влево и AND много раз так:
while(mask <= test){
if((mask & test) === mask) return 1;
mask = mask << 1n;
}
Например, если mask = 0b101
, оно будет соответствовать 0b1010
и 0b10011011
;
Что такое самый быстрый способ сделать это, для тестовых значений 256 бит? Я учел следующее:
BigInt
Это самый естественный способ. К сожалению, Safari не поддерживает этот примитив, который вдохновил этот вопрос. Может быть, в любом случае есть лучший способ.
Матрица 1 и 0
Может быть, самый простой, но наименее эффективный.
Uint32Array
Можно использовать массив из 8 32-битных элементов. Было бы хорошо, но есть две проблемы. Во-первых, порядок элементов не гарантируется, и два, сдвиг битов по всему массиву будет огромной болью.
WebAssembly
Я действительно не хочу этого делать.
Есть ли другой способ?