技巧如下:
a = a^b;
b = a^b;
a = a^b;
功能:交换数据;
优点:不加入第三变量,节省空间,简化代码,有b格;
缺点:得考虑数据之间独立情况(大部分能用,毕竟变量之间不独立的特殊情况很少)
前提:带交换的两个变量是独立的,假如有,相同异或之后归零导致错误,交换失败;
补充:
1:异或运算:本质上是“无进位相加”;
口诀/结论:
- 相同为0(xx^xx==0;)
- 与0为己(xx^0 ==xx;)
案例:
技巧如下:
a = a^b;
b = a^b;
a = a^b;
功能:交换数据;
优点:不加入第三变量,节省空间,简化代码,有b格;
缺点:得考虑数据之间独立情况(大部分能用,毕竟变量之间不独立的特殊情况很少)
前提:带交换的两个变量是独立的,假如有,相同异或之后归零导致错误,交换失败;
补充:
1:异或运算:本质上是“无进位相加”;
口诀/结论: