What is XOR operator ? 什么是“異或運(yùn)算”?

這里主要針對計(jì)算機(jī)編程中的異或運(yùn)算進(jìn)行解釋。


我們先看一下一般的定義:

異或,英文為exclusive OR,或縮寫成xor

異或(xor)是一個(gè)數(shù)學(xué)運(yùn)算符。它應(yīng)用于邏輯運(yùn)算。異或的數(shù)學(xué)符號為“⊕”,計(jì)算機(jī)符號為“xor”。其運(yùn)算法則為:

a⊕b = (?a ∧ b) ∨ (a ∧?b)

如果a、b兩個(gè)值不相同,則異或結(jié)果為1。如果a、b兩個(gè)值相同,異或結(jié)果為0。

異或也叫半加運(yùn)算,其運(yùn)算法則相當(dāng)于不帶進(jìn)位的二進(jìn)制加法
二進(jìn)制下用1表示真,0表示假,則異或的運(yùn)算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1)。

——部分引自百度百科

使用該運(yùn)算進(jìn)行計(jì)算時(shí)記住相當(dāng)于沒有進(jìn)位的二進(jìn)制加法就可以了。

可是我們在學(xué)習(xí)時(shí)還會用到利用異或運(yùn)算進(jìn)行兩個(gè)值互換,這又該怎么理解呢?我們深入理解一下異或運(yùn)算。

異或的英文是 exclusive or 這應(yīng)該怎么解釋?

or 的含義大概大家都理解,數(shù)學(xué)邏輯中的 A or B, 意味著生活用語中的 A 或 B 或 它們重疊的部分。下面是直觀的維恩圖,圖片均來自維基百科。


exclusive 是“排外的”的含義,"mutually exclusive"是“互斥的”的意思,XOR 是進(jìn)行邏輯或再排除重合的部分,所以不難理解 EOR 也有“互斥或”的名稱。下面是直觀的維恩圖。


我們再看經(jīng)常應(yīng)用到的兩個(gè)值互換的直觀含義。首先,用C語言表達(dá)過程,C
語言中用^表示異或操作:

    *p = *p ^ *s ;
    *s = *p ^ *s ;
    *p = *p ^ *s ;

上面一段代碼向我們演示了如何運(yùn)用異或交換兩個(gè)變量的值而不用額外申請中間變量。

我們用維恩圖的角度看每個(gè)語句。

    *p = *p ^*s

若假定左側(cè)的圓是指針p的值,右側(cè)是指針s的值,則指針p的賦值為一次異或操作:


*s = *p ^ *s ;

第二句的指針p的值為上圖,指針s的值仍為右圓,進(jìn)行異或操作后為原指針p的值,賦值給了s:


*p = *p ^ *s ;

在用上圖指針s,原指針p的值與上上圖指針p的值進(jìn)行異或,則得到原指針s的值,賦值給指針p。


這樣就實(shí)現(xiàn)了兩個(gè)值的交換。


歡迎到我的博客感受更好的閱讀體驗(yàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,620評論 3 44
  • 今天真的是負(fù)面情緒大爆發(fā)。 最近要迎接上級檢查,原本是滿腔熱情,想得個(gè)好成績??墒浅隽藗€(gè)豬隊(duì)友,搞出個(gè)故障,連累扣...
    妄_念閱讀 178評論 0 0
  • 1、概念 對象的序列化:把Java對象轉(zhuǎn)換為字節(jié)序列并存儲至一個(gè)儲存媒介的過程; 對象的反序列化:把字節(jié)序列恢復(fù)為...
    M_JCs閱讀 315評論 0 0
  • 清明時(shí)節(jié),黿頭渚是最美的去處。在我看來,這個(gè)形似烏龜?shù)膶毜靥N(yùn)藏著一個(gè)美艷動人又清泠沉靜的春天。 大巴...
    玉露情歌閱讀 505評論 3 4
  • 昨晚,不對,凌晨,0點(diǎn),生日快樂要送出的,后一想,這就是個(gè)形式,心里送出的祝福應(yīng)該能感受到吧。 今早,果不其然,追...
    只是一粒薏米仁閱讀 243評論 1 0

友情鏈接更多精彩內(nèi)容