跳转到内容

逻辑异或:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Cewbot留言 | 贡献
cewbot: 規範多個問題模板:合併維護模板
Tang891228留言 | 贡献
修飾語句
(未显示同一用户的8个中间版本)
第1行: 第1行:
{{Otheruses
|subject=邏輯運算符
|other=邏輯門
|异或门
}}

{{多個問題|
{{多個問題|
{{unreferenced|time=2018-12-05T15:18:09+00:00}}
{{unreferenced|time=2018-12-05T15:18:09+00:00}}
第10行: 第4行:
{{expert|time=2013-10-25T19:31:10+00:00}}
{{expert|time=2013-10-25T19:31:10+00:00}}
}}
}}
{{NoteTA
[[File:Venn0110.svg|thumb| {{Smallmath|f= A \oplus B}} 的[[文氏图]] ]]
|G1 = Electronics
|G2 = IT
}}
{{Redirect-multi|異或|b=互斥或|邏輯門|异或门}}
[[File:Venn0110.svg|thumb| {{Smallmath|f= p \oplus q}} 的[[文氏图]] ]]


在-{zh-hant:數位;zh-hans:数字}-邏輯中,[[逻辑运算符|逻辑算符]]'''互斥或閘'''('''exclusive or''')是对两个[[运算元]]的一种[[逻辑或|邏輯分析]]类型,符号为'''XOR'''或'''EOR'''或'''⊕'''。与一般的[[邏輯或]]OR不同,當兩兩數值相同為否,而數值不同時為真。
在-{zh-hant:數位;zh-hans:数字}-邏輯中,[[逻辑运算符|逻辑算符]]'''互斥或閘'''('''exclusive or''')是对两个[[运算元]]的一种[[逻辑或|邏輯分析]]类型。与一般的[[邏輯或]]OR不同,當兩兩數值相同為否,而數值不同時為真。


两个运算元(命题):A与B的异或一般写成A异或B,或者写成<math>A \quad \mathrm{XOR} \quad B</math><math>A \oplus B</math><math>A \neq B</math>等等。在[[C语言]]中,写作A^B
对于[[命题]]<math>p, q</math>,<math>p</math>异或<math>q</math>通常记作<math>p \operatorname{XOR} q</math><math>p \oplus q</math>。在[[r语言]]中,写作<code>p ^ q</code>


== 真值表 ==
== 真值表 ==
异或运算<math>A \oplus B</math>的[[真值表]]如下:
异或运算<math>p \oplus q</math>的[[真值表]]如下:
F表示false,T表示true


{| class="wikitable" style="text-align:center;"
{| class="wikitable" style="text-align:center;"
|+
|+
! <math>p</math> !! <math>q</math> !! <math>\oplus</math>
! style="width:35px;background:#aaaaaa;"| <big>A</big>
! style="width:35px;background:#aaaaaa;"| <big>B</big>
! style="width:35px"| <big>⊕</big>
|-
|-
| F || F || F
| <math>T</math> || <math>T</math> || <math>F</math>
|-
|-
| F || T || T
| <math>T</math> || <math>F</math> || <math>T</math>
|-
|-
| T || F || T
| <math>F</math> || <math>T</math> || <math>T</math>
|-
|-
| T || T || F
| <math>F</math> || <math>F</math> || <math>F</math>
|}
|}


可以注意到无论怎样改变同一行中<math>A</math>、<math>B</math>和<math>\oplus</math>的位置,真值表都是成立的。
无论怎样改变同一行中<math>p, q, \oplus</math>的位置,真值表都是成立的。


== 其他表示 ==
== 其他表示 ==


在数学和工程学中,常常用其他的逻辑运算符来表示异或算符。异或算符可以被其他逻辑算符表示为:
在数学和工程学中,常常用其他的逻辑运算符来表示异或算符。异或算符可以被其他逻辑算符表示为:
: <math>\begin{matrix}
: <math>
\begin{align}
A \oplus B & = & (A \land \lnot B) & \lor & (\lnot A \land B) = A\overline{B} + \overline{A}B \\
p \oplus q & = (p \land \lnot q) \lor (\lnot p \land q) = p\overline{q} + \overline{p}q \\
& = (p \lor q) \land (\lnot p \lor \lnot q) = (p+q)(\overline{p}+\overline{q}) \\
\\
& = & (A \lor B) & \land & (\lnot A \lor \lnot B) = (A+B)(\overline{A}+\overline{B}) \\
& = (p \lor q) \land \lnot (p \land q) = (p+q)(\overline{pq})
\end{align}
\\
</math>
& = & (A \lor B) & \land & \lnot (A \land B) = (A+B)(\overline{AB})
\end{matrix}</math>


另外,异或算符可以被推广,得到关于''n''个运算元的异或运算:''n''个运算元的''n''维异或的值为真[[当且仅当]]其中值为真的运算元有[[奇数]]个。
另外,异或算符可以被推广,得到关于''n''个运算元的异或运算:''n''个运算元的''n''维异或的值为真[[当且仅当]]其中值为真的运算元有[[奇数]]个。


异或也可以被表示为:
异或也可以被表示为:
: <math>p \oplus q = \lnot ((p \land q) \lor (\lnot p \land \lnot q))</math>
: <math>\begin{matrix}
A \oplus B & = & \lnot ((A \land B) \lor (\lnot A \land \lnot B))
\end{matrix}</math>


异或还可以看作是[[逻辑等价]]关系的非运算。<math>\wedge</math> <math>\lor</math>
异或还可以看作是[[逻辑等价]]关系的非运算。


== 性质 ==
== 性质 ==
'''[[交换律]]''':<math>A \oplus B = B \oplus A</math>
'''[[交换律]]''':<math>p \oplus q = q \oplus p</math>


'''[[结合律]]''':<math>A \oplus (B \oplus C)=(A \oplus B) \oplus C</math>
'''[[结合律]]''':<math>p \oplus (q \oplus r) = (p \oplus q) \oplus r</math>


'''恒等律''':<math>X\oplus 0=X</math>
'''恒等律''':<math>p \oplus 0 = p</math>


'''归零律''':<math>X\oplus X=0</math>
'''归零律''':<math>p \oplus p = 0</math>


'''[[自反关系|自反]]''':<math>A \oplus B \oplus B=A\oplus 0=A</math>
'''[[自反关系|自反]]''':<math>p \oplus q \oplus q = p\oplus 0 = p</math>


== 与近世代数的联系 ==
== 与近世代数的联系 ==
第89行: 第83行:
b = a ^ b;
b = a ^ b;
a = a ^ b
a = a ^ b

}
}
</syntaxhighlight>
</syntaxhighlight>

2019年1月29日 (二) 09:41的版本

文氏图

在数字邏輯中,逻辑算符互斥或閘exclusive or)是对两个运算元的一种邏輯分析类型。与一般的邏輯或OR不同,當兩兩數值相同為否,而數值不同時為真。

对于命题异或通常记作。在r语言中,写作p ^ q

真值表

异或运算真值表如下:

无论怎样改变同一行中的位置,真值表都是成立的。

其他表示

在数学和工程学中,常常用其他的逻辑运算符来表示异或算符。异或算符可以被其他逻辑算符表示为:

另外,异或算符可以被推广,得到关于n个运算元的异或运算:n个运算元的n维异或的值为真当且仅当其中值为真的运算元有奇数个。

异或也可以被表示为:

异或还可以看作是逻辑等价关系的非运算。

性质

交换律

结合律

恒等律

归零律

自反

与近世代数的联系

尽管算子逻辑合取)与逻辑析取)是逻辑系统中最为常见的算子,但结构上,系统 and 只是幺半群。因此,这两个系统无法合成为一个更大的结构,比如半环

但是,带有逻辑异或的系统是一个交换群。因此,算子的结合在集合上作用就产生了最基本的二元。这个域可以得出所有运用可以得到的结果,并且由于附带了域的结构,可以进行代数上的进一步分析。

類似符號

名稱 符號 Unicode 圖形 符號的來源
地球 U+2295 地球的天文符號 带有赤道和一條經線的球體

使用异或运算交换两个 int 类型变量的数值

public void switch(int &a, int &b){
    a = a ^ b;
    b = a ^ b;
    a = a ^ b
}

参考来源

参见

-