C program to swap two numbers using bitwise XOR operation :
In this tutorial, we will learn how to swap two numbers in C using bitwise XOR operation. Let’s take a look at the program :
C program :
#include <stdio.h>
int main()
{
int firstNumber;
int secondNumber;
printf("Enter the first number : ");
scanf("%d", &firstNumber);
printf("Enter the second number : ");
scanf("%d", &secondNumber);
printf("First number : %d , Second number : %d\n", firstNumber, secondNumber);
firstNumber = firstNumber ^ secondNumber;
secondNumber = firstNumber ^ secondNumber;
firstNumber = firstNumber ^ secondNumber;
printf("After swapping, First number : %d , Second number : %d\n", firstNumber, secondNumber);
}
Explanation :
Let’s try to understand the above program with an example. For firstNumber = 9 and secondNumber = 10, we will calculate the XOR of both . It will become :
firstNumber(9) : 00001001
secondNumber(10) : 00001010
firstNumber = firstNumber XOR secondNumber = 00000011
secondNumber = firstNumber XOR secondNumber = 00000011 XOR 00001010 = 00001001
firstNumber = firstNumber XOR secondNumber = 00000011 XOR 00001001 = 00001010
In the above example, you can see that the firstNumber become secondNumber and secondNumber becomes firstNumber .
Sample Output :
Enter the first number : 12
Enter the second number : 14
First number : 12 , Second number : 14
After swapping, First number : 14 , Second number : 12
Enter the first number : 10
Enter the second number : 20
First number : 10 , Second number : 20
After swapping, First number : 20 , Second number : 10
Enter the first number : 3
Enter the second number : 100
First number : 3 , Second number : 100
After swapping, First number : 100 , Second number : 3