Operators in programming language that compares data bit-by-bit, or *bitwise*
# [[C++]]
## AND (`&`)
- Binary operator
- Returns 1 if both bits are 1
```cpp
0111 (7)
& 0100 (4)
----
0100 (4)
7 & 4 = 4
0111 & 0100 = 0100
```
## OR (`|`)
- Binary operator
- Returns 0 when both bits are 0
```cpp
0111 (7)
& 0100 (4)
----
0111 (7)
7 | 4 = 7
0111 | 0100 = 0111
```
## NOT (`~`)
- Unary operator
- Returns 0 when bit is 1, 1 when bit is 0