从左神算法视频里get到一个小技巧:算法
经过异或运算来交换两数spa
看上去瞬间逼格高了很多code
int a=11; int b=12; int temp=a^b; a=temp^a; b=temp^b
其实原理很简单,视频
先科普(小白请看)一下异或运算blog
两个二进制数异或运算 同位上相同时为0 不一样时为1;get
(同或运算则相反,相同为1,不一样为0)class
因此上面 a=temp^a=a^a^b=0^b;原理
0异或任何数=异或的那个数自己;技巧
因此咱们就完成了两个数的交换;二进制