Swapping
Swapping
#include <stdio.h> int main() { int i = 65; int k = 120; printf(" value of i=%d k=%d before swapping", i, k); i = i ^ k; k = i ^ k; i = i ^ k; printf(" 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)
$ cc bit27.c $ a.out Enter two numbers:45 76 The numbers before swapping are Number1= 45 Number2=76 The numbers after swapping are Number1= 76 Number2=45