[不指定 2005/09/04 19:27 | by turbozv ]
P39 ex 2.10
void swap(int *a, int *b)
{
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

很巧妙的办法,利用XOR运算规律(交换率(x^y=y^x),结合率(y^x^x = y))
swap的证明很简单:
b:=a^b:=(a^b)^b=a^b^b=a
a:=a^b:=(a^b)^((a^b)^b)=a^b^a=b
学习 | 评论(1) | 引用(0) | 阅读(8422)
steven Email
2005/09/05 05:12
分页: 1/1 第一页 1 最后页