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

使用異或運算交換2個數值

#include<iostream> 
using namespace std;
int main(){
    int a=1;//二進位制位0001 
    int b=2;//二進位制位0010 
    cout<<"交換前a="<<a<<" "<<"b="<<b<<endl;


    int c=a^b;//經過異或運算(相同為0 不同為1)後  得0011 等於3 
    a=c^a;//經過異或運算後 得0010 等於2
    b=c^a;//經過異或運算後 得0001 等於1

    cout<<"交換後a="<<a<<" "
<<"b="<<b<<endl; return 0; }

執行結果
這裡寫圖片描述

總結

一個數異或運算2次相同的數,數值不會改變,比如int temp=a^b^b,其temp的結果就是a