In Python, the XOR (exclusive OR) operator is a bitwise operator defined by the caret symbol ^.
This operator takes two bit patterns of equal length and performs the logical exclusive OR operation on each pair of corresponding bits.
It returns 1 when either of the operands is 1, otherwise 0.
The XOR operator can be used for various purposes, including cryptography, data manipulation, and solving certain algorithmic problems.
Example 1: Basic XOR Operations
Visual Representation
a = 10 # In binary: 1010
b = 7 # In binary: 0111
result = a ^ b # 1010 XOR 0111 = 1101 in binary, which is 13 in decimal
print(result)
Output
13
Example 2: Swapping Two Variables
x = 10
y = 7
print('Before swapping: ')
print('The value of x is: ', x)
print('The value of y is: ', y)
x = x ^ y
y = x ^ y
x = x ^ y
print('After swapping: ')
print('The value of x is: ', x)
print('The value of y is: ', y)
Output
Before swapping:
The value of x is: 10
The value of y is: 7
After swapping:
The value of x is: 7
The value of y is: 10
Example 3: Performing XOR on booleans
XOR returns True if the two boolean values are different (one True and one False), and False if they are the same (both True or both False).
a = True
b = False
result = a ^ b
print(result)
a = True
b = True
result = a ^ b
print(result)
a = False
b = False
result = a ^ b
print(result)
a = False
b = True
result = a ^ b
print(result)
Output
True
False
False
True
What is the difference between XOR and OR?
Here’s a comparison in tabular format:
Input A | Input B | XOR (A ^ B) | OR (A | B) |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
The main difference between XOR and OR operators is that XOR returns True if exactly one of the inputs is 1, whereas OR returns 1 (True) if at least one of the inputs is 1.
The other difference is that XOR is an exclusive operator, whereas OR is an inclusive operator.
Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.