1. 程式人生 > >異或交換兩數

異或交換兩數

span clas style pre 二進制 簡單 技巧 異或運算 pan

從左神算法視頻裏get到一個小技巧:

通過異或運算來交換兩數

看上去瞬間逼格高了不少

int a=11;
int b=12;
int temp=a^b;
a=temp^a;
b=temp^b

其實原理很簡單,

先科普(小白請看)一下異或運算

兩個二進制數異或運算 同位上相同時為0 不同時為1;

(同或運算則相反,相同為1,不同為0)

所以上面 a=temp^a=a^a^b=0^b;

0異或任何數=異或的那個數本身;

所以我們就完成了兩個數的交換;

異或交換兩數