# Bitwise XOR, Computations, and Examples

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.

Here, we will discuss the '^' operator in more detail.

## Introduction

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.

## Gopi Gorantala Newsletter

Join the newsletter to receive the latest updates in your inbox.