ОК, поэтому вы создали битовую маску.(01010101)
if ((value & bit_mask) == bit_mask)
тогда вы знаете, что каждый бит, который был установлен в bit_mask
, также установлен в value
.
ОБНОВЛЕНИЕ: (после правильного прочтения вопроса)
Вы хотите проверить, установлен ли каждый второй бит на 0. (Не установлено на 1, так как мой неправильный ответ выше проверяет)
Существует два одинаково правильных подхода: мы делаем битовую маску противоположной (10101010)
Затем используем оператор ИЛИ:
if ((value | bit_mask) == bit_mask)
Это проверяет, что каждый бит был нулевымв bit_mask
равен нулю в value
.
Второй подход заключается в том, чтобы сделать битовую маску одинаковой (01010101) и использовать оператор AND:
if ((value & bit_mask) == 0)
Это проверяет, чтокаждый бит, равный единице в bit_mask
, равен нулю в value
.