Здравствуйте, _typhoon, Вы писали:
_>Мне кажется умножения в выражениях все же более ресурсоемко чем сравнение
Ну, компиляторы ещё в прошлом веке научились использовать побитовый сдвиг вместо умножения на степень двойки.
Хотя, конечно, запись с побитовыми операциями может оказаться более читаемой, ибо своим видом сразу покажет, что идёт работа с битами:
flags = (bit1value << bit1position) | (bit2value << bit2position).