代码:
m=3,n=5;
m = m ^ n;
n = m ^ n;
m = m ^ n;
输出的时候也确实交换了
异或运算等于二进制的无进位相加。
异或运算满足交换率和结合律,即:
a ^ b ^ c = b ^ c ^ a = c ^ (a ^ b)
一个数异或本身等于0
一个数异或0等于这个数本身
基于以上结论:
m = m ^ n ---> m = m ^ n
n = m ^ n ---> n = m ^ n ^ n = m ^ (n ^ n ) = m ^ 0 = m --> n = m
m = m ^ n ---> m = (m ^ n) ^ m = (m ^ m) ^ n = 0 ^ n = n --> m = n
t = a;
a = b;
b = t;
这是a 与 b交换的基本代码
晓得了
异或运算符,把数转换为二进制以后进行异或运算,相同为0不同为1
m=3,n=5;
1.m = m ^ n;
2.n = m ^ n;
3.m = m ^ n;
异或再异或就会还原