C语言利用异或进行两个值的交换
异或有两个很重要的性质:
1、 A^A = 0;
2、A^0 = A;
利用这两个性质,我们就能够利用异或进行两个值的交换。
代码如下:
#include <stdio.h> int main() { int a = -11; int b = -1; a = a^b; b = a^b; a = a^b; /*或者简写为 * a ^= b; b ^= a; a ^= b * **/ printf("交换后a = %d,b = %d\n",a,b); return 0; }