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