Open In App

Bitwise XOR Operator in Programming

Last Updated : 27 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Bitwise XOR Operator is represented by the caret symbol (^). It is used to perform a bitwise XOR operation on the individual bits of two operands. The XOR operator returns 1 if the corresponding bits in the two operands are different, and 0 if they are the same.

What is Bitwise XOR?

Bitwise XOR (exclusive OR) is a binary operation that takes two equal-length binary representations and performs the logical XOR operation on each pair of corresponding bits. The result in each position is 1 if only one of the two bits is 1 but will be 0 if both are 0 or both are 1.

The truth table for the XOR (exclusive OR) operation is as follows:

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

In this table, A and B are the variables, and A XOR B is the expression representing the logical XOR operation. The table shows all possible combinations of truth values for A and B, and the resulting truth value of A XOR B for each combination.

The XOR operation returns 1 (true) if the inputs are different, and 0 (false) if they are the same. This is why the output is 1 for the second and third rows, where A and B have different values, and 0 for the first and fourth rows, where A and B have the same value.

Bitwise XOR operator:

The bitwise XOR operator is represented by the caret symbol (^) in many programming languages, including Python, C, C++, and Java.

result = operand1 ^ operand2;

Bitwise XOR operator in C:

C




#include <stdio.h>
 
int main()
{
    int a = 10; // 1010 in binary
    int b = 6; // 0110 in binary
 
    int result = a ^ b; // 1100 in binary
 
    printf("%d\n", result); // Output: 12
 
    return 0;
}


Output

12

Bitwise XOR operator in C++:

C++




#include <iostream>
using namespace std;
 
int main()
{
    int a = 10; // 1010 in binary
    int b = 6; // 0110 in binary
 
    int result = a ^ b; // 1100 in binary
 
    cout << result << endl; // Output: 12
 
    return 0;
}


Output

12

Bitwise XOR operator in Java:

Java




import java.io.*;
class GFG {
    public static void main(String[] args)
    {
        int a = 10; // 1010 in binary
        int b = 6; // 0110 in binary
 
        int result = a ^ b; // 1100 in binary
 
        System.out.println(result); // Output: 12
    }
}


Output

12

Bitwise XOR operator in Python:

Python3




a = 10  # 1010 in binary
b = 6   # 0110 in binary
 
result = a ^ b  # 1100 in binary
 
print(result)  # Output: 12


Output

12

Bitwise XOR operator in C#:

C#




using System;
 
class MainClass {
    public static void Main(string[] args)
    {
        int a = 10; // 1010 in binary
        int b = 6; // 0110 in binary
 
        int result = a ^ b; // 1100 in binary
 
        Console.WriteLine(result); // Output: 12
    }
}


Output

12

Bitwise XOR operator in Javascript:

Javascript




let a = 10;  // 1010 in binary
let b = 6;   // 0110 in binary
 
let result = a ^ b;  // 1100 in binary
 
console.log(result);  // Output: 12


Output

12

Use Cases of Bitwise XOR Operator:

The bitwise XOR operator (^) has several use cases in programming:

  • Flipping individual bits: The XOR operator can be used to flip individual bits in a number. For example, x ^ 1 will flip the least significant bit of x.
  • Swapping two variables without a temporary variable: The XOR operator can be used to swap the values of two variables without using a temporary variable. For example, a ^= b; b ^= a; a ^= b; will swap the values of a and b.
  • Checking if two numbers have opposite signs: The XOR operator can be used to check if two numbers have opposite signs. For example, (x ^ y) < 0 will return true if x and y have opposite signs.
  • Implementing simple encryption algorithms: The XOR operator can be used to implement simple encryption algorithms. For example, x ^ key will encrypt x using key, and x ^ key ^ key will decrypt x using key.
  • Detecting changes in data: The XOR operator can be used to detect changes in data. For example, x ^ y will return 0 if x and y are the same, and a non-zero value if they are different.

Applications of Bitwise XOR Operator:

Here are some applications of the bitwise XOR operator:

  • Error detection and correction: XOR operations are used in error detection and correction codes like CRC (Cyclic Redundancy Check) and Hamming codes. By XORing the data with a known pattern, errors in transmission can be detected and corrected.
  • Random number generation: XOR operations can be used in pseudo-random number generation algorithms. By XORing a number with itself and a shifting pattern, a sequence of seemingly random numbers can be generated.
  • Parity checking: XOR operations are used in parity checking to determine if the number of bits set to 1 in a binary word is odd or even. This is often used in computer memory systems to detect errors.
  • Image processing: XOR operations can be used in image processing to perform operations like image blending, edge detection, and watermarking.
  • Digital signal processing: XOR operations are used in digital signal processing algorithms like Fast Fourier Transform (FFT) and convolution to perform operations on digital signals.
  • Cryptographic hash functions: XOR operations are used in cryptographic hash functions like MD5 and SHA-1 to create a unique hash value for a given input.
  • Network protocols: XOR operations are used in network protocols like TCP and UDP to calculate checksums for data packets to ensure data integrity during transmission.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads