🧠 Python Bitwise Operators – AND, OR, XOR, NOT Explained
🔑 What Are Bitwise Operators?
Bitwise operators in Python are used to perform operations on binary representations of integers. These operators manipulate individual bits, making them useful for tasks such as:
- Hardware programming
- Data compression
- Cryptography
- Flag masking and toggling
📋 Bitwise Operators Table
| Operator | Name | Symbol | Example | Binary Result |
|---|---|---|---|---|
| AND | Bitwise AND | & | 5 & 3 | 0b0101 & 0b0011 = 0b0001 |
| OR | Bitwise OR | ` | ` | `5 |
| XOR | Bitwise XOR | ^ | 5 ^ 3 | 0b0101 ^ 0b0011 = 0b0110 |
| NOT | Bitwise NOT | ~ | ~5 | ~0b0101 = -0b0110 |
| Left Shift | Shift Left | << | 5 << 1 | 0b0101 << 1 = 0b1010 |
| Right Shift | Shift Right | >> | 5 >> 1 | 0b0101 >> 1 = 0b0010 |
🧪 Bitwise Examples in Python
✅ AND &
a = 5 # 0b0101
b = 3 # 0b0011
print(a & b) # Output: 1 (0b0001)
✅ OR |
print(a | b) # Output: 7 (0b0111)
✅ XOR ^
print(a ^ b) # Output: 6 (0b0110)
✅ NOT ~
print(~a) # Output: -6 (two's complement of 5)
✅ Shift Left <<
print(a << 1) # Output: 10 (0b1010)
✅ Shift Right >>
print(a >> 1) # Output: 2 (0b0010)
📘 Binary Display with bin()
You can visualize the binary version of numbers using bin():
print(bin(5)) # '0b101'
print(bin(~5)) # '-0b110'
⚙️ Use Cases
- Masking bits:
flags = 0b1010 mask = 0b0100 print(flags & mask) # Check if 3rd bit is set - Setting a bit:
flags |= 0b0001 - Clearing a bit:
flags &= ~0b0010 - Toggling a bit:
flags ^= 0b1000
⚠️ Bitwise vs Logical Operators
| Type | Operator | Use Case |
|---|---|---|
| Logical | and, or | Boolean conditions |
| Bitwise | &, ` | , ^` |
📏 Bit Length Utility
Use bit_length() to get how many bits are needed:
x = 99
print(x.bit_length()) # Output: 7
Same as len(bin(x)) - 2.
🧠 Summary Table
| Operator | Purpose | Python Example | Result (Decimal) |
|---|---|---|---|
& | Bitwise AND | 5 & 3 | 1 |
| ` | ` | Bitwise OR | `5 |
^ | Bitwise XOR | 5 ^ 3 | 6 |
~ | Bitwise NOT | ~5 | -6 |
<< | Shift left | 5 << 1 | 10 |
>> | Shift right | 5 >> 1 | 2 |
❓FAQs – Bitwise Operators in Python
❓ What’s the difference between & and and in Python?
& is bitwise AND for integers. and is a logical operator for boolean expressions.
❓ Why is ~5 equal to -6?
Because Python uses two’s complement. ~x = -(x + 1).
❓ Can you use bitwise operators on floats?
No. Bitwise operators work only with integers.
❓ What happens if you shift bits beyond their width?
Python integers have arbitrary precision, so shifts won’t overflow, but may lead to large numbers.
Share Now :
