異或交換兩數

從左神算法視頻裏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異或任何數=異或的那個數自己;技巧

因此咱們就完成了兩個數的交換;二進制

相關文章
相關標籤/搜索