Skip to content

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.

Gopi Gorantala
Gopi Gorantala
2 min read

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.

Bit ManipulationData Structures and Algorithms

Gopi Gorantala Twitter

Gopi is an engineering leader with 12+ of experience in full-stack development—a specialist in Java technology stack. He worked for multiple startups, the European govt, and FAANG in India and Europe.

Comments


Related Posts

Members Public

Leetcode 217: Contains Duplicate

This question marks the first problem when working on duplicate data, either integers or strings etc. Companies that have asked this in their coding interview are Amazon, Apple, Netflix, Google, Microsoft, Adobe, Facebook, and many more top tech companies. Problem statement Given an integer array nums, return true if any

Leetcode 217: Contains Duplicate
Members Public

Leetcode 121: Best Time To Buy and Sell Stock

The Best time to buy and sell stock problem is a classic problem that can be solved using the Greedy approach. This is one of the most popular questions asked in such interviews. Companies that have asked this in their coding interview are Facebook, Amazon, Apple, Netflix, Google, Microsoft, Adobe,

Leetcode 121: Best Time To Buy and Sell Stock
Members Public

Bit Manipulation Course Overview

Overview In this course, you will learn how to solve problems using bit manipulation, a powerful technique that can be used to optimize your algorithmic and problem-solving skills. This is one of the most important/critical topics when someone starts preparing for coding interviews for FAANG companies. To kick things