如果将两个整数进行互换,不依赖中间参数?
int a = 8;
int b = 11;
考察知识点:异或运算^(二进制对比,相同为0,不同为1)
int a = a ^ b;
int b = a ^ b;
int a = a ^ b;
解释如下:
3 转化二级制为:0011
8 转化二级制为:1000
11 转化二进制位:1011
第一个表达式: a ^ b 为0011,也就是3 ,ab结果为3,11;
第二个表达式: a ^ b 为1000,也就是8,ab结果为3,8;
第三个表达式: a ^ b 为1011, 也就是11,ab结果为11,8;