Самый эффективный способ реализации 256-битной битовой маски в javascript? - PullRequest
0 голосов
/ 06 марта 2020

Я хочу представить 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

Я действительно не хочу этого делать.

Есть ли другой способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...