Lesson 34 / 36
Bitwise Operators & Bit Flags
Operate directly on individual bits.
The six bitwise operators
& AND, | OR, ^ XOR, ~ NOT (flips every bit), << left shift (multiply by 2 per shift), >> right shift (divide by 2 per shift).
Set, clear, toggle, check a bit
These four patterns cover almost every bit-flag task.
unsigned int flags = 0;
flags |= (1 << 2); // set bit 2
flags &= ~(1 << 2); // clear bit 2
flags ^= (1 << 2); // toggle bit 2
if (flags & (1 << 2)) {
printf("bit 2 is set\n");
}Why bit flags?
Packing multiple boolean options into one integer (each bit = one on/off flag) saves memory and is common in embedded systems, permission systems, and hardware registers.
Quick check: Which operator flips every bit of a value?
- ~ (NOT)
- ^ (XOR)
- & (AND)
Answer
~ (NOT) — The bitwise NOT (~) inverts every bit of its operand.