有關異或符號'^'在c++編程中的應用的講解!!!


異或門符號'^',在編程中的使用,有的時候能夠讓你的程序更加精煉簡捷,
尤其在C++的acm程序應用中,可以避免許多麻煩!!!它的幾個簡單作用
講解如下:
它的簡單規則是相同為0,不同為1,例如
int a=3=011(2進制,在計算機中的存儲形式);
int b=6=110(2進制,在計算機中的存儲形式);
int c=a^b=101=5;
切忌,在異或門的計算中都是應用的2進制!!
任何數和0異或都等於它本身;兩個相同的數異或后的結果是0;
1)實現兩個數的交換
  a=a^b;   
   b=a^b;//b=a^b^b=a^0=a;   
   a=a^b;//a=a^a^b=0^b=b;
應用例子如下:
#include<iostream>
using namespace std;
int main()
{
 int a=3;
 int b=4;
 a=a^b;
 b=a^b;
 a=a^b;
 cout<<a<<' '<<b<<endl;
 return 0;
}
2在一排數中找到獨一無二的一個數
例子如下:
他的思路是;
只要有相同的數那么他們異或后的結果就是0,最后就剩下0和那個獨一無二的數相異或,就等於
那個獨一無二的數了!!哈哈!!例子,如下:
#include<iostream>
using namespace std;
int main()
{
    int n,i,x,y;
    while(scanf("%d",&n)!=EOF&&n)
    {
           x=0;
           while(n--)
           {
               cin>>y;
                x^=y;   
           }       
           printf("%d\n",x);           
    }
    return 0;
}
隨便輸入幾個數,找到其中沒有和他相同的那個數!!哈!
3)判斷兩個數是否相等
if(a^b==0)
printf("a=b");
else
printf("a!=b");

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM