XOR operator
What is XOR operator?
The XOR operator (^) is a bitwise operator that performs the exclusive OR operation on its operands.
The exclusive OR operation is a logical operation that returns true (1) if exactly one of its operands is 1. It return false (0) if both operands are 0 or both operands are 1.
XOR operator example
0 ^ 0 = 1
XOR operator truth table
x | y | x ^ y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Useful properties XOR operator:
argument XOR 0 = argument
x ^ 0 = x
argument XOR argument = 0
x ^ x = 0
Commutativity
x ^ y = y ^ x
Programming problem related XOR operator:
In-Place Swapping: Swap two values x and y in-place, i.e. without using any helper variables.
let x = 10, y = 5; // 'x' binary (1010) and 'y' binary (0101) x = x ^ y; // x now becomes 15 (1111) y = x ^ y; // y becomes 10 (1010) x = x ^ y; // x becomes 5 (0101)
Finding the Missing Number: You are given an array A of n – 1 integers which are in the range between 1 and n. All numbers appear exactly once, except one number, which is missing. Find this missing number.
Finding the Duplicate Number: You are given an array A of n + 1 integers which are in the range between 1 and n. All numbers appear exactly once, except one number, which is duplicated. Find this duplicated number.
Finding Two Missing/Duplicate Numbers: You are given an array A of n – 2 integers which are in the range between 1 and n. All numbers appear exactly once, except two numbers, which are missing. Find these two missing numbers.
Reference: