Я хочу проверить, установлены или очищены несколько битов в 32-битном регистре для манипулирования оборудованием. Я использую следующий подход, чтобы проверить, установлены ли требуемые биты (бит 8 и бит 1) uint32_t
-варианта с именем statusRegister
:
if ((statusRegister & 0x00000102) == 0x00000102) {}
И следующее, чтобы проверить, очищены ли нужные биты:
if ((statusRegister | ~0x00000102) == ~0x00000102) {}
Это правильно? Есть ли более лаконичный способ сделать это?