利用异或逻辑交换两个数
时间:2010-04-08 来源:lanlovehua
原理: | a^a = 0 | a^0=a |
开始: | *x | *y |
第一步: | *x^*y | *y |
第二步: | *x^*y | (*x^*y)^*y = *x |
第三步: | (*x^*y) ^ *x = *y | *x |
void change(int *x, int *y)
{
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;
}
int main()
{
int a = 13;
int b = 30;
change(&a, &b);
printf("OK:a = %d\t b = %d\n", a, b);
return 0;
}
结果: OK:a = 30 b = 13
相关阅读 更多 +