Это очень хорошо точно способ проверки битовых флагов на большинстве языков, которые их поддерживают.
Например:
#define BIT_7 0x80
#define BITS_0_AND_1 0x03
if ((flag & BIT_7) == BIT_7) ...
if ((flag & BITS_0_AND_1) == BITS_0_AND_1) ...
Хотя вы можете проверить что-то вродепервый с:
if ((flag & BIT_7) != 0) ...
, который на самом деле не будет работать в течение второго, поскольку он вернет true, если установлены либо битов, но не оба.
Для полноты C позволяет установить битовые маски с помощью:
flag = flag | BIT_7; // or you can also use 'flag |= BIT_7'
Вы можете очистить их с помощью:
flag = flag & (~BIT_7);
И переключить их с помощью:
flag = flag ^ BIT_7;