要交换两个变量的值,传统的方法都需要一个临时变量。实现如下:
inta=4,b=3;
int temp;
temp=a;
a=b;
b=temp;
以上实现a和b的值的交换,通过中间变量。
或void swap(unsigned char *pa,unsigned char*pb)
{
unsigned char temp=*pa;//定义临时变量,将pa指向的变量值赋给它
*pa=*pb;
*pb=temp; //变量值对调
}
而使用异或的方法来实现,就可以不用临时变量,如下:
inta=4,b=3;
a=a^b;
b=a^b;
a=a^b;
以上实现a和b的值的交换,不需要中间变量。
void swap_xor(unsigned char *pa,unsignedchar *pb)
{
*pa=*pa^*pb;
*pb=*pa^*pb;
*pa=*pa^*pb; //采用异或实现变量对调
}
从上例中可以看到异或运算在开发中是非常实用和神奇的。