Bitwise XOR, Computations, and Examples
2 min readIntroduction
A Bitwise XOR is a binary operation that takes two-bit patterns of equal length and performs the logical exclusive OR operation on each corresponding bits pair. Each position’s result is 0 if both bits are 0 or if both bits are 1. Otherwise, the result is 1.
Bitwise XOR
The Bitwise XOR operator does the following:
- It is a binary operator that takes two numbers.
- When we do Bitwise
^of these two numbers, it considers the binary representation of these two numbers. - Bitwise XOR compares bit by bit in binary representation, and whatever binary representation you get, the corresponding Integer is returned as an output.
The integer data type takes 4 bytes in C, C++, and Java programming languages.
4 Bytes = 4 * (8 bits) = 32 bits. {1 Byte = 8 bits}For simplicity, we’ll represent these in 16-bit instead of 32-bit binary.
a = 12
b = 10
---------------------------------
a in binary : 0000 0000 0000 1100
b in binary : 0000 0000 0000 1010
---------------------------------
a ^ b : 0000 0000 0000 0110
---------------------------------The ^ operation happens from the rightmost bit traversing towards the leftmost bit in the 32-bit binary representation.
Illustration
Let’s visualize the steps below:
Step #1:
a = 12
b = 10
---------------------------------
a in binary : 0000 0000 0000 1100
b in binary : 0000 0000 0000 1010
---------------------------------
a ^ b : 0
---------------------------------Step #2:
a = 12
b = 10
---------------------------------
a in binary : 0000 0000 0000 1100
b in binary : 0000 0000 0000 1010
---------------------------------
a ^ b : 10
---------------------------------Step #3:
a = 12
b = 10
---------------------------------
a in binary : 0000 0000 0000 1100
b in binary : 0000 0000 0000 1010
---------------------------------
a ^ b : 110
---------------------------------Step #4:
a = 12
b = 10
---------------------------------
a in binary : 0000 0000 0000 1100
b in binary : 0000 0000 0000 1010
---------------------------------
a ^ b : 0000 0000 0000 0110
---------------------------------Code
Below is the code representation of the ^ operator.
Java
class XOROperation {
public static void main( String args[] ) {
int x = 12;
int y = 10;
System.out.println("Bitwise XOR of (x , y) is : " + (x ^ y)); // yields to 6
}
}Python
x=12
y=10
print("Bitwise XOR of (x,y) is : ",(x^y))JavaScript
const XOROperation = (x, y) => x ^ y;
const x = 12;
const y = 10;
console.log (`Bitwise XOR of (x , y) is : ${XOROperation (x, y)}`);
C++
#include <iostream>
using namespace std;
int main() {
int x = 12, y = 10;
cout << "Bitwise XOR of (x,y) is : " << (x ^ y);
return 0;
}TypeScript
const XOROperation = (x: number, y: number): number => x ^ y;
const x: number = 12;
const y: number = 10;
console.log(`Bitwise XOR of (x , y) is : ${XOROperation(x, y)}`);
In the following lessons, we will apply the Bitwise approach to solve a few problems with XOR.
Let’s jump into our first problem using the Bitwise ^ operator in the next lesson.