C program to swap two variable using Xor bitwise operator

  • Write a program in C to swap two variables using Xor bitwise operator.
  • How to swap two variables in C using bitwise operators.

Required knowledge : Xor bitwise operator
Algorithm to swap two numbers using Xor bitwise operator
  • Here is the basic algorithm to swap two variables without using a temporary third variable. Let A and B are two variable:
    • A = A + B
    • B = A - B;
    • A = A - B;
  • Bitwise Xor of A and B(A^B) is equivalent to sum of A and B(A+B). Hence algorithm can be re-written in terms of Xor operator as:
    • A = A ^ B
    • B = A ^ B;
    • A = A ^ B;
    or A ^= B ^= A ^= B;

C program to swap two variable using Xor bitwise operator.

#include<stdio.h>

int main() {
    int a, b;
    
    printf("Enter the value of A and B\n");
    scanf("%d %d", &a, &b);
    /* swap two variables */
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    // Equivalent one liner : x ^= y ^= x ^= y;
    printf("After Swapping, A = %d, B = %d", a, b);
    return 0;
}
Output
Enter the value of A and B
3 7
After Swapping, A = 7, B = 3