首先,a=5,b=6,经过下面三步运算
①a=a^b;
②b=a^b;
③a=a^b;
a=6,b=5.
分析:
首先异或运算的结果是(相同为0,不同为1)
例如:1010^0110=1100
同时我们可以看出在异或运算中,1和任何数字运算的结果为该数字的反码
(如第四位和第二位),
0和任何数字运算的结果为该数字的原码(如第三位和第一位)。
a=0101,b=0110,当我们要交换ab的值时,只需要将后两位取反即可。
a=a^b=0011(由此可以判断a,b的差异位为后两位)
b=a^b=0011 ^ 0110=0101(此时,b的值已经替换为a的值)
a=a^b=0011 ^ 0101=0110(a的值变为b的值)