Есть int, в котором хранится значения битовых флагов:
enum Flags
{
F1 = 1,
F2 = 2,
F3 = 4,
F4 = 8
}
Как бы вы определили, что установлены 2 или более флага одновременно? Я сделал так:
if (signum(var & F1) +
signum(var & F2) +
signum(var & F3) +
signum(var & F4) > 1)
return 1
else
return 0;