2018-01-28 使用异或操作实现两个数的交换

原理:异或操作,对于二进制位:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。对于十进制数:两个相同的数异或操作后等于0;
条件:a != b,且 a+b不会溢出。
操作:

a = a ^ b; // a内储存的是a^b
b = a ^ b; // b内储存的是a^b^b = a
a = a ^ b; // a内储存的是a^b^a = b

你可能感兴趣的:(2018-01-28 使用异或操作实现两个数的交换)