🧠 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 :