Bitwise XOR Operator in Programming
Last Updated :
27 Feb, 2024
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;
int b = 6;
int result = a ^ b;
printf ( "%d\n" , result);
return 0;
}
|
Bitwise XOR operator in C++:
C++
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 6;
int result = a ^ b;
cout << result << endl;
return 0;
}
|
Bitwise XOR operator in Java:
Java
import java.io.*;
class GFG {
public static void main(String[] args)
{
int a = 10 ;
int b = 6 ;
int result = a ^ b;
System.out.println(result);
}
}
|
Bitwise XOR operator in Python:
Python3
a = 10
b = 6
result = a ^ b
print (result)
|
Bitwise XOR operator in C#:
C#
using System;
class MainClass {
public static void Main( string [] args)
{
int a = 10;
int b = 6;
int result = a ^ b;
Console.WriteLine(result);
}
}
|
Bitwise XOR operator in Javascript:
Javascript
let a = 10;
let b = 6;
let result = a ^ b;
console.log(result);
|
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.
Share your thoughts in the comments
Please Login to comment...