inline void Swap(int &a, int &b)
{
if(a != b)
{
a ^= b;
b ^= a;
a ^= b;
}
}
分析:b = b ^ a = b ^ (a ^ b) = a ^ b ^ b = a ^ 0 = a
a = a ^ b = (a ^ b) ^ a = a ^ a ^ b = 0 ^ b = b
inline void Swap(int &a, int &b)
{
if(a != b)
{
a ^= b;
b ^= a;
a ^= b;
}
}
分析:b = b ^ a = b ^ (a ^ b) = a ^ b ^ b = a ^ 0 = a
a = a ^ b = (a ^ b) ^ a = a ^ a ^ b = 0 ^ b = b