C/C++ Arena

Step 4 of 5

Flags

Bits make compact on/off switches. Give each flag its own bit:

#define HAS_HELMET  (1u << 0)
#define HAS_KIT     (1u << 1)
#define IS_SCOPED   (1u << 2)

unsigned state = 0;
state |= HAS_KIT;            // turn on
state &= ~HAS_KIT;           // turn off
state ^= IS_SCOPED;          // toggle
if (state & HAS_HELMET) {}   // test

Your turn: fill in the operators.

Previous: Bitwise operators Next: Challenge: power of two