## Bitwise XOR Operator in C++

In C++, the bitwise XOR operator (^) is used to perform an exclusive OR (XOR) operation between two integers. This operation returns a value where each bit is set to 1 if and only if exactly one of the corresponding bits in the operands is 1. The bitwise XOR operator is commonly used in various programming tasks, including cryptography, networking, and data analysis.

If you are new to C++ programming, understanding the bitwise XOR operator can be challenging. In this article, we will explain how the XOR operator works in C++ and demonstrate some practical examples of its use.

## What is the XOR operator in C++?

In C++, the XOR operator is a binary operator that takes two operands and returns the result of performing an exclusive OR operation on them. The syntax for the XOR operator is as follows:

x ^ y

Wherex andy are the operands.

#### How does the XOR operator work?

The XOR operator works by comparing each bit of the two operands and returning a new value where each bit is set to 1 if and only if exactly one of the corresponding bits in the operands is 1. If both bits are 0 or 1, the result bit is set to 0.

For example, let’s say we have two integersa andb with the following binary representation:

a = 1100

b = 1010

The XOR operation betweenaandbwould be: a ^ b = 0110

As you can see, the result has a 1 in each position where the corresponding bits ina andb differ.

#### Bitwise XOR operator examples

Let’s look at some examples of how the XOR operator can be used in C++.

Example 1: Finding the missing number in an array

Suppose you have an array ofn integers containing all the numbers from 1 ton except one. You can use the XOR operator to find the missing number efficiently.

int missingNumber(vector& nums) { int missing = nums.size(); for (int i = 0; i < nums.size(); i++) { missing ^= i ^ nums[i]; } return missing; }

In this example, we start withmissing equal to the size of the array. We then loop through the array and perform an XOR operation betweenmissing, the loop variablei, and the current elementnums[i]. This will cancel out all the elements in the array and leave us with the missing number.

Example

Flipping the bits of an integer

You can use the XOR operator to flip the bits of an integer. Suppose you have an integerx and you want to flip all its bits. You can do this by XORing it with a numbermask that has all its bits set to

int flipBits(int x) {

int mask = ~0; // All bits set to 1

return x ^ mask;

}

In this example, we create amask variable that has all its bits set to 1 by using the bitwise NOT operator (~) on 0. We then perform an XOR