Stack Overflow на русском Asked on February 4, 2021
есть некоторая битовая последовательность, записанная в числе
data = 0b01101000
надо определить, что она полностью покрывается битовой последовательностью (маской), записанной в другом числе
mask = 0b01101011
для этого можно использовать два идентичных алгоритма:
mask | data == mask
и
~mask & data == 0
Подскажите, а есть ли какая-нибудь инструкция (или совокупность инструкций) процессоров x86, x64, которая делает тоже самое (смотрю инструкции операций с битами, но не совсем въезжаю)
Оптимально конечно было бы, если бы существовала некоторая функция/инструкция, которая выдавала бы 1
, если последовательность полностью покрывается маской и 0
в противном случае
вроде как есть инструкция ANDN
(~x & y
), но в той же visual studio она доступна только для mmx регистров (_m_pandn
), что несколько избыточно и опять же все равно результат надо будет сравнивать
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP