什么是異或運算?
異或,英文為exclusive OR,縮寫成xor
異或(xor)是一個數(shù)學(xué)運算符。它應(yīng)用于邏輯運算。異或的數(shù)學(xué)符號為“⊕”,計算機符號為“xor”。其運算法則為:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果a、b兩個值不相同,則異或結(jié)果為1。如果a、b兩個值相同,異或結(jié)果為0。
異或也叫半加運算,其運算法則相當于不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。
異或略稱為XOR、EOR、EX-OR
程序中有三種演算子:XOR、xor、⊕。
使用方法如下
z = x ⊕ y
z = x xor y
擴展資料
運算法則
1)交換律:a ^ b = b ^ a。
2)結(jié)合律:a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
d = a ^ b ^ c 可以推出 a = d ^ b ^ c。
3)自反性:a ^ b ^ a = b。
異或運算最常見于多項式除法,不過它最重要的性質(zhì)還是自反性:
A^B^ B=A,即對給定的數(shù)A,用同樣的運算因子(B)作兩次異或運算后仍得到A本身。這是一個神奇的性質(zhì),利用這個性質(zhì),可以獲得許多有趣的應(yīng)用。例如,所有的程序教科書都會向初學(xué)者指出,要交換兩個變量的值,必須要引入一個中間變量。但如果使用異或,就可以節(jié)約一個變量的存儲空間:
設(shè)有A,B兩個變量,存儲的值分別為a,b,則以下三行表達式將互換他們的值表達式(值):
A=A^B(a^b);
B=B^A(b^a^b=a);
A=A^B(a^b^a=b)。
類似地,該運算還可以應(yīng)用在加密,數(shù)據(jù)傳輸,校驗等等許多領(lǐng)域。
x是二進制數(shù)0101;
y是二進制數(shù)1011;
則結(jié)果為x^y=1110;
0^0=0;0^1=1;1^0=1;1^1=0;
只有在兩個比較的位不同時其結(jié)果是1,否則結(jié)果為0。
即“相同為0,不同為1”。
參考資料來源:百度百科-異或運算
參考資料來源:百度百科-異或操作
異或運算怎么算
異或運算如下:可以A異或(A異或B)看作a^(a^b)=(a^a)^b,又因為a^a=0,原式可以簡化成0^b=b。
邏輯加法通常用符號“+”或“∨”來表示。邏輯加法運算規(guī)則如下:
0+0=0,0∨0=0。
0+1=1,0∨1=1。
1+0=1,1∨0=1。
1+1=1,1∨1=1。
從上式可見,邏輯加法有“或”的意義。也就是說,在給定的邏輯變量中,A或B只要有一個為1,其邏輯加的結(jié)果為1;兩者都為1則邏輯加為1。
語言巧用
與其它語言不同,C語言和C++語言(C++支持xor,用法和效果如'^'相同)的異或不用xor,而是用“^”,鍵入方式為Shift+6。(而其它語言的“^”一般表示乘方)若需要交換兩個變量的值,除了通常使用的借用中間變量進行交換外,還可以利用異或,僅使用兩個變量進行交換。
異或運算為什么叫異或,感覺他的邏輯功能和他的名字聯(lián)系不容易記
本文發(fā)布于:2023-02-28 20:23:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167767325685685.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:異或(異或門).doc
本文 PDF 下載地址:異或(異或門).pdf
| 留言與評論(共有 0 條評論) |