C program to swap two numbers using bitwise XOR operation

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