Я хочу сделать 64-разрядное целое без знака, состоящее из пар бит и создать из него 32-разрядное целое число, содержащее 0, если оба бита в соответствующей паре равны 0 и 1 в противном случае. Другими словами, преобразуйте что-то похожее:
01 00 10 11
во что-то похожее на это
1 0 1 1
Двумя очевидными решениями являются либо петля грубой силы, либо таблица поиска для каждого байта, а затем выполняют восемь поисков и объединяют их в конечный результат с OR и смещением битов, но я уверен, что должно быть эффективное средство бит -включить это. Я буду делать это для 64-битных целых чисел на С++, но если кто-нибудь знает об эффективных способах сделать это для более коротких целых чисел, я уверен, что смогу выяснить, как его масштабировать.