邏輯互斥或- 維基百科,自由的百科全書
文章推薦指數: 80 %
雖然XOR運算可用來交換變數,但比起使用額外變數來交換變數的做法相比,效能反而比較差。
參考來源[編輯]. 參見[編輯].
邏輯互斥或
維基百科,自由的百科全書
跳至導覽
跳至搜尋
本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。
此條目沒有列出任何參考或來源。
(2018年12月5日)維基百科所有的內容都應該可供查證。
請協助補充可靠來源以改善這篇條目。
無法查證的內容可能會因為異議提出而移除。
此條目需要更新。
(2018年12月5日)請更新本文以反映近況和新增內容。
完成修改時,請移除本模板。
此條目需要精通或熟悉相關主題的編者參與及協助編輯。
(2013年10月25日)請邀請適合的人士改善本條目。
更多的細節與詳情請參見討論頁。
「異或」和「互斥或」均重新導向至此。
關於邏輯閘,請見「互斥或閘」。
p
⊕
q
{\displaystyle{\begin{smallmatrix}p\oplusq\end{smallmatrix}}}
的文氏圖
在數位邏輯中,邏輯算符互斥或(英語:Exclusiveor)是對兩個運算元的一種邏輯分析類型。
與一般的邏輯或不同,當兩兩數值相同時為否,而數值不同時為真。
對於命題
p
,
q
{\displaystylep,q}
,
p
{\displaystylep}
互斥或
q
{\displaystyleq}
通常記作
p
XOR
q
{\displaystylep\operatorname{XOR}q}
或
p
⊕
q
{\displaystylep\oplusq}
。
在程式語言中,常寫作p^q。
目次
1真值表
2其他表示
3性質
4與抽象代數的關係
5類似符號
6應用
6.1使用異或運算交換兩個int類型變量的數值
7參考來源
8參見
真值表[編輯]
互斥或運算
p
⊕
q
{\displaystylep\oplusq}
的真值表如下:
p
{\displaystylep}
q
{\displaystyleq}
p
⊕
q
{\displaystylep\oplusq}
True
True
False
True
False
True
False
True
True
False
False
False
註:True:真,False:假。
無論怎樣改變同一行中
p
,
q
,
p
⊕
q
{\displaystylep,q,p\oplusq}
的位置,真值表都是成立的。
其他表示[編輯]
在數學和工程學中,常常用其他的邏輯運算子來表示互斥或算符。
互斥或算符可以使用邏輯算符邏輯與
∧
{\displaystyle\land}
,邏輯或
∨
{\displaystyle\lor}
和邏輯非
¬
{\displaystyle\lnot}
表示為:
p
⊕
q
=
(
p
∧
¬
q
)
∨
(
¬
p
∧
q
)
=
p
q
¯
+
p
¯
q
=
(
p
∨
q
)
∧
(
¬
p
∨
¬
q
)
=
(
p
+
q
)
(
p
¯
+
q
¯
)
=
(
p
∨
q
)
∧
¬
(
p
∧
q
)
=
(
p
+
q
)
(
p
q
¯
)
{\displaystyle{\begin{aligned}p\oplusq&=(p\land\lnotq)\lor(\lnotp\landq)=p{\overline{q}}+{\overline{p}}q\\&=(p\lorq)\land(\lnotp\lor\lnotq)=(p+q)({\overline{p}}+{\overline{q}})\\&=(p\lorq)\land\lnot(p\landq)=(p+q)({\overline{pq}})\end{aligned}}}
另外,互斥或算符可以被推廣,得到關於n個運算元的互斥或運算:n個運算元的n維互斥或的值為真若且唯若其中值為真的運算元有奇數個。
互斥或也可以被表示為:
p
⊕
q
=
¬
(
(
p
∧
q
)
∨
(
¬
p
∧
¬
q
)
)
{\displaystylep\oplusq=\lnot((p\landq)\lor(\lnotp\land\lnotq))}
互斥或還可以看作是邏輯等價關係的非運算。
性質[編輯]
交換律:
p
⊕
q
=
q
⊕
p
{\displaystylep\oplusq=q\oplusp}
結合律:
p
⊕
(
q
⊕
r
)
=
(
p
⊕
q
)
⊕
r
{\displaystylep\oplus(q\oplusr)=(p\oplusq)\oplusr}
恆等律:
p
⊕
0
=
p
{\displaystylep\oplus0=p}
歸零律:
p
⊕
p
=
0
{\displaystylep\oplusp=0}
自反:
p
⊕
q
⊕
q
=
p
⊕
0
=
p
{\displaystylep\oplusq\oplusq=p\oplus0=p}
與抽象代數的關係[編輯]
儘管算子
∧
{\displaystyle\wedge}
(邏輯合取)與
∨
{\displaystyle\lor}
(邏輯析取)是邏輯系統中最為常見的算子,但結構上,系統
(
{
T
,
F
}
,
∧
)
{\displaystyle(\{T,F\},\wedge)}
and
(
{
T
,
F
}
,
∨
)
{\displaystyle(\{T,F\},\lor)}
只是么半群。
因此,這兩個系統無法合成為一個更大的結構,比如環或半環。
但是,帶有邏輯互斥或的系統
(
{
T
,
F
}
,
⊕
)
{\displaystyle(\{T,F\},\oplus)}
是一個交換群。
因此,算子
∧
{\displaystyle\wedge}
與
⊕
{\displaystyle\oplus}
的結合在集合
{
T
,
F
}
{\displaystyle\{T,F\}}
上作用就產生了最基本的二元域
F
2
{\displaystyleF_{2}}
。
這個域可以得出所有運用
(
∧
,
∨
)
{\displaystyle(\land,\lor)}
可以得到的結果,並且由於附帶了域的結構,可以進行代數上的進一步分析。
類似符號[編輯]
名稱
符號
Unicode
圖形
符號的來源
地球
🜨
U+2295
帶有赤道和一條經線的球體
應用[編輯]
使用互斥或運算交換兩個int類型變數的數值[編輯]
C/C++
voidswap(int*a,int*b){
*a^=*b;
*b^=*a;
*a^=*b;
}
Java
publicvoidswap(int&a,int&b){
a=a^b;
b=a^b;
a=a^b;
}
C#
publicvoidswap(refinta,refintb)
{
a^=b;
b^=a;
a^=b;
}
雖然XOR運算可用來交換變數,但比起使用額外變數來交換變數的做法相比,效能反而比較差。
參考來源[編輯]
參見[編輯]
互斥或閘
互斥或密碼
閱論編邏輯聯結詞
恆真(
⊤
{\displaystyle\top}
)
與非(
↑
{\displaystyle\uparrow}
)
反蘊涵(
←
{\displaystyle\leftarrow}
)
蘊涵(
→
{\displaystyle\rightarrow}
)
或(
∨
{\displaystyle\lor}
)
非(
¬
{\displaystyle\neg}
)
互斥或(
⊕
{\displaystyle\oplus}
)
雙條件(
↔
{\displaystyle\leftrightarrow}
)
命題
或非(
↓
{\displaystyle\downarrow}
)
非蘊涵(
↛
{\displaystyle\nrightarrow}
)
反非蘊涵(
↚
{\displaystyle\nleftarrow}
)
與(
∧
{\displaystyle\land}
)
恆假(
⊥
{\displaystyle\bot}
)
取自「https://zh.wikipedia.org/w/index.php?title=逻辑异或&oldid=71761336」
分類:布爾代數二元運算邏輯聯結詞隱藏分類:自2018年12月缺少來源的條目自2018年12月待更新條目自2013年10月需要專業人士關注的頁面含有多個問題的條目含有英語的條目使用過時的math標籤格式的頁面
導覽選單
個人工具
沒有登入討論貢獻建立帳號登入
命名空間
條目討論
臺灣正體
不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體
查看
閱讀編輯檢視歷史
更多
搜尋
導航
首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科
說明
說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科
工具
連結至此的頁面相關變更上傳檔案特殊頁面靜態連結頁面資訊引用此頁面維基數據項目
列印/匯出
下載為PDF可列印版
其他專案
維基共享資源
其他語言
CatalàČeštinaDeutschΕλληνικάEnglishEsperantoEspañolEestiفارسیSuomiFrançaisעבריתItaliano日本語한국어МакедонскиNederlandsNorskbokmålPolskiPiemontèisPortuguêsRomânăРусскийSimpleEnglishSlovenčinaСрпски/srpskiSvenskaУкраїнська粵語
編輯連結
延伸文章資訊
- 1位元XOR運算(^) | 86Duino
int c = a | b; // result: 00000000000000000000000001111101, or 125 in decimal. 位元運算XOR (^). 這是一個特...
- 2位元運算
這叫做bitwise operation,像是逐位的or 就稱為bitwise or、逐位xor 稱為bitwise xor 等等。 以下是C++ 的位元運算子列表:. 運算子, 說明 ...
- 3Xor 運算子
另請參閱. 運算子摘要. 支援和意見反應. 有關於Office VBA 或這份文件的問題或意見反應嗎? 如 ...
- 4Xor 運算子
用來在兩個運算式上做邏輯互斥。 語法. [result =] expression1 Xor expression2. Xor 運算子的語法具有以下幾個單元: ...
- 5邏輯互斥或- 維基百科,自由的百科全書
雖然XOR運算可用來交換變數,但比起使用額外變數來交換變數的做法相比,效能反而比較差。 參考來源[編輯]. 參見[編輯].