1. 程式人生 > >用異或運算交換兩個數

用異或運算交換兩個數

平常交換兩個數一般是利用一箇中間變數,其實可以利用異或^也可以實現交換,而且效率更快哦!

程式碼如下:

void Swap(int& a,int& b){
    if(a!=b){
        a^=b;
        b^=a;
        a^=b;
    }
}

原理:利用相同的數異或必為0,異或滿足交換率和任何數和0異或都等於本身。

比如:

1.a=a^b;

2.b=b^a=b^(a^b)=b^b^a=0^a=a;

3.a=a^b=a^(b^a)=b^a^a=b^0=b;

證畢。