原理:
例如:
a = 10 b = 01(二进制)
a = 10 XOR 01 = 11
b = 01 XOR 11 = 10
a = 11 XOR 10 = 01
最后a = 01, b = 10,两者的二进制值交换了。
C代码:
void swap(int *a, int *b){
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
原理:
例如:
a = 10 b = 01(二进制)
a = 10 XOR 01 = 11
b = 01 XOR 11 = 10
a = 11 XOR 10 = 01
最后a = 01, b = 10,两者的二进制值交换了。
C代码:
void swap(int *a, int *b){
*a ^= *b;
*b ^= *a;
*a ^= *b;
}