# Write a C program to swap two numbers using bitwise operators?

Program:

```
#include <stdio.h>
int main() {
int i = 65;
int k = 120;
printf("\n value of i=%d k=%d before swapping", i, k);
i = i ^ k;
k = i ^ k;
i = i ^ k;
printf("\n value of i=%d k=%d after swapping", i, k);
return 0;
}
```

Explanation:

i = 65; binary equivalent of 65 is 0100 0001

k = 120; binary equivalent of 120 is 0111 1000

i = i^k;

i…0100 0001

k…0111 1000

val of i = 0011 1001

k = i^k

i…0011 1001

k…0111 1000

val of k = 0100 0001 binary equivalent of this is 65

---------(that is the initial value of i)

i = i^k

i…0011 1001

k…0100 0001

val of i = 0111 1000 binary equivalent of this is 120

--------- (that is the initial value of k)