Есть 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;


