逻辑异或












A⊕B{displaystyle {begin{smallmatrix}Aoplus Bend{smallmatrix}}}{begin{smallmatrix}Aoplus Bend{smallmatrix}} 的文氏图


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


两个运算元(命题):A与B的异或一般写成A异或B,或者写成AXORB{displaystyle Aquad mathrm {XOR} quad B}Aquad mathrm {XOR} quad BA⊕B{displaystyle Aoplus B}Aoplus BA≠B{displaystyle Aneq B}Aneq B等等。在C语言中,写作A^B。




目录






  • 1 真值表


  • 2 其他表示


  • 3 性质


  • 4 与近世代数的联系


  • 5 類似符號


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


  • 7 参考来源


  • 8 参见





真值表


异或运算A⊕B{displaystyle Aoplus B}Aoplus B的真值表如下:
F表示false,T表示true

































A

B


F F F
F T T
T F T
T T F

可以注意到无论怎样改变同一行中A{displaystyle A}AB{displaystyle B}B{displaystyle oplus }oplus 的位置,真值表都是成立的。



其他表示


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


A⊕B=(A∧¬B)∨A∧B)=AB¯+A¯B=(A∨B)∧A∨¬B)=(A+B)(A¯+B¯)=(A∨B)∧¬(A∧B)=(A+B)(AB¯){displaystyle {begin{matrix}Aoplus B&=&(Aland lnot B)&lor &(lnot Aland B)=A{overline {B}}+{overline {A}}B\\&=&(Alor B)&land &(lnot Alor lnot B)=(A+B)({overline {A}}+{overline {B}})\\&=&(Alor B)&land &lnot (Aland B)=(A+B)({overline {AB}})end{matrix}}}{begin{matrix}Aoplus B&=&(Aland lnot B)&lor &(lnot Aland B)=A{overline {B}}+{overline {A}}B\\&=&(Alor B)&land &(lnot Alor lnot B)=(A+B)({overline {A}}+{overline {B}})\\&=&(Alor B)&land &lnot (Aland B)=(A+B)({overline {AB}})end{matrix}}

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


异或也可以被表示为:


A⊕B=¬((A∧B)∨A∧¬B)){displaystyle {begin{matrix}Aoplus B&=&lnot ((Aland B)lor (lnot Aland lnot B))end{matrix}}}{begin{matrix}Aoplus B&=&lnot ((Aland B)lor (lnot Aland lnot B))end{matrix}}

异或还可以看作是逻辑等价关系的非运算。{displaystyle wedge }wedge {displaystyle lor }lor



性质


交换律A⊕B=B⊕A{displaystyle Aoplus B=Boplus A}Aoplus B=Boplus A


结合律A⊕(B⊕C)=(A⊕B)⊕C{displaystyle Aoplus (Boplus C)=(Aoplus B)oplus C}Aoplus (Boplus C)=(Aoplus B)oplus C


恒等律X⊕0=X{displaystyle Xoplus 0=X}Xoplus 0=X


归零律X⊕X=0{displaystyle Xoplus X=0}Xoplus X=0


自反A⊕B⊕B=A⊕0=A{displaystyle Aoplus Boplus B=Aoplus 0=A}Aoplus Boplus B=Aoplus 0=A



与近世代数的联系


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


但是,带有逻辑异或的系统({T,F},⊕){displaystyle ({T,F},oplus )}({T,F},oplus )是一个交换群。因此,算子{displaystyle wedge }wedge {displaystyle oplus }oplus 的结合在集合{T,F}{displaystyle {T,F}}{T,F}上作用就产生了最基本的二元域F2{displaystyle F_{2}}F_{2}。这个域可以得出所有运用(∧,∨){displaystyle (land ,lor )}(land ,lor )可以得到的结果,并且由于附带了域的结构,可以进行代数上的进一步分析。



類似符號

















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


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


1 public void switch(int &a, int &b){
2 a = a ^ b;
3 b = a ^ b;
4 a = a ^ b
5
6 }


参考来源





参见



  • 异或门

  • 异或密码





Comments

Popular posts from this blog

Information security

Volkswagen Group MQB platform

Daniel Guggenheim