摘要:
我们都知道通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a,b的值,可通过下列语句实现:a=10100001,b=00000110 a=a^b; //a=10100111 b=b^a; //b=10100001 a=a^b; //a=00000110这段代码该怎么去理解呢?我们可这样去理解,比如我们可以增加一个变量c,c = a^b。我们可以很容易的发现a,b,c任意2个取异或会得到另一个数。那么上面这一段代码就很好理解了。a = a^b = cb = b^c =a(初始值的a)a = a^b =c^a(初始值的a) = b(初始值的b)。 阅读全文