Python Bitwise Operators
Bitwise operators work directly on the binary representations of integers. They operate bit by bit (each binary digit) and are commonly used in low-level programming, performance optimization, and tasks involving flags or masks.
Common Bitwise Operators in Python
Operator | Name | Description | Example |
---|---|---|---|
& |
AND | Sets each bit to 1 if both bits are 1 | a & b |
` | ` | OR | Sets each bit to 1 if one of two bits is 1 |
^ |
XOR (Exclusive OR) | Sets each bit to 1 if only one of the bits is 1 | a ^ b |
~ |
NOT (Bitwise Complement) | Inverts all the bits | ~a |
<< |
Left Shift | Shifts bits to the left, filling with zeros | a << 2 |
>> |
Right Shift | Shifts bits to the right, discarding bits on the right | a >> 2 |
Explanation and Examples
Let's take two numbers for examples:
a = 60 # In binary: 0011 1100
b = 13 # In binary: 0000 1101
1. Bitwise AND (&
)
Sets each bit to 1 only if both bits are 1.
result = a & b
# 0011 1100
# 0000 1101
# --------
# 0000 1100 => 12 in decimal
print(result) # Output: 12
2. Bitwise OR (|
)
Sets each bit to 1 if either bit is 1.
result = a | b
# 0011 1100
# 0000 1101
# --------
# 0011 1101 => 61 in decimal
print(result) # Output: 61
3. Bitwise XOR (^
)
Sets each bit to 1 if only one of the bits is 1 (but not both).
result = a ^ b
# 0011 1100
# 0000 1101
# --------
# 0011 0001 => 49 in decimal
print(result) # Output: 49
4. Bitwise NOT (~
)
Inverts all bits (flips 0s to 1s and 1s to 0s). Note: Python uses two’s complement for negative numbers.
result = ~a
# a = 60 (0011 1100)
# ~a = 1100 0011 (in two's complement, represents -61)
print(result) # Output: -61
5. Left Shift (<<
)
Shifts bits to the left by the specified number of positions, filling with zeros on the right.
result = a << 2
# 0011 1100 << 2 -> 1111 0000
# decimal 240
print(result) # Output: 240
6. Right Shift (>>
)
Shifts bits to the right by the specified number of positions, discarding bits on the right.
result = a >> 2
# 0011 1100 >> 2 -> 0000 1111
# decimal 15
print(result) # Output: 15
Summary Table with Output
a = 60 # 0011 1100
b = 13 # 0000 1101
print("a & b =", a & b) # 12
print("a | b =", a | b) # 61
print("a ^ b =", a ^ b) # 49
print("~a =", ~a) # -61
print("a << 2 =", a << 2) # 240
print("a >> 2 =", a >> 2) # 15
At Online Learner, we're on a mission to ignite a passion for learning and empower individuals to reach their full potential. Founded by a team of dedicated educators and industry experts, our platform is designed to provide accessible and engaging educational resources for learners of all ages and backgrounds.
Terms Disclaimer About Us Contact Us
Copyright 2023-2025 © All rights reserved.