Bitwise operators in Python allow you to manipulate individual bits of integer numbers. They are useful for performing operations at the bit level, such as shifting, AND, OR, XOR, and complement.
The bitwise operators in Python are as follows:
| Operator | Description |
|---|---|
| AND (&) | Performs a bitwise AND operation |
| OR (|) | Performs a bitwise OR operation |
| XOR (^) | Performs a bitwise XOR operation |
| Left Shift (<<) | Shifts bits to the left |
| Right Shift (>>) | Shifts bits to the right |
| Complement (~) | Returns the one’s complement of the number |
AND Operator &
The AND (&) operator compares each bit of two operands and returns 1 if both bits are 1, otherwise it returns 0.
# Example of AND operator
a = 10 # 1010 in binary
b = 3 # 0011 in binary
result = a & b
print(result) # Output: 2
# Explanation: 1010 & 0011 = 0010 (decimal 2)
OR Operator |
The OR (|) operator compares each bit of two operands and returns 1 if at least one of the bits is 1.
# Example of OR operator
a = 10 # 1010 in binary
b = 3 # 0011 in binary
result = a | b
print(result) # Output: 11
# Explanation: 1010 | 0011 = 1011 (decimal 11)
XOR Operator ^
The XOR (^) operator compares each bit of two operands and returns 1 if exactly one of the bits is 1, but not both.
# Example of XOR operator
a = 10 # 1010 in binary
b = 3 # 0011 in binary
result = a ^ b
print(result) # Output: 9
# Explanation: 1010 ^ 0011 = 1001 (decimal 9)
Shift Operators
Shift operators move the bits of a number to the left (<<) or to the right (>>) by the specified amount.
Left Shift Example
# Example of left shift
a = 5 # 101 in binary
result = a << 2
print(result) # Output: 20
# Explanation: 101 << 2 = 10100 (decimal 20)
Right Shift Example
# Example of right shift
a = 20 # 10100 in binary
result = a >> 2
print(result) # Output: 5
# Explanation: 10100 >> 2 = 101 (decimal 5)
Complement Operator ~
The complement operator (~) inverts all the bits of a number.
# Example of complement operator
a = 5 # 101 in binary
result = ~a
print(result) # Output: -6
# Explanation: ~101 = -110 (in two's complement, -6 in decimal)
