Bitwise Operators

C# supports various bitwise operators for integral types.  These operators allow performing the following operations on sequences of bits: Complement, OR, AND, and XOR.
~ Operator – Complement
The ~ operator takes a single operand and performs a bitwise complement operation, flipping each bit.
1
uint u = ~0xFF00C3A5;      // 0x00FF3C5A
| Operator – OR
The | operator takes two operands and performs a bitwise OR, i.e. output bit is 1 if either input bit is 1.
1
uint u = 0x00FF3333 | 0x0F0F5555;    // 0x0FFF7777;
& Operator – AND
The & operator takes two operands and performs a bitwise AND, i.e. output bit is 1 if both input bits are 1.
1
uint u = 0x00FF3333 & 0x0F0F5555;    // 0x000F1111
^ Operator – XOR
The ^ operator takes two operands and performs an exclusive OR operation, i.e. output bit is 1 if exactly one input bit is 1.


1
uint u = 0x00FF3333 ^ 0x0F0F5555;    // 0x0FF06666