Разница между операторами % и & при работе с битовыми флагами заключается в их назначении:
- Оператор % (побитовое ИЛИ) используется для получения битовой маски, соответствующей объединению (включению) нескольких флагов. 1 Для этого несколько флагов складывают при помощи побитового ИЛИ. 1
- Оператор & (побитовое И) применяется для проверки, включён ли конкретный флаг. 15 Он возвращает новое число, в котором каждый бит является результатом логического И двух соответствующих битов исходных чисел. 5
Таким образом, оператор % используется для объединения флагов, а оператор & — для проверки, включён ли конкретный флаг.
Выбор между этими операторами зависит от конкретной задачи и требований к коду.