亦或运算:相同为0,不同为1;又称无进位相加。
思想:a^a=0,0^a=a。任何数和他自已亦或等于0,任何数和0亦或等于他自己。
题解:
public static void swap(int a, int b){
a = a^b;
// a = a^b 这里把 a^b看成一个整体
// b = a^b^b
// b^b = 0
// b = a 此时b = a
b = a^b;
// a = a^b 上面说a的值a^b是个整体
// a = (a^b)^a 亦或运算符合交换结合律
// a = b 此时a = b
a = a^b; // 交换完成
}
浙公网安备 33010602011771号