邏輯互斥抑是講
佇數位邏輯內底,邏輯算符相斥抑是講(英語:Exclusive or)是對兩種運算元的一種邏輯分析類型。佮一般的邏輯抑是無仝,彼兩數值仝款時陣敢若,數值無仝時陣為真的。
對命題 $ p , q $,$ p $ 相斥抑是講 $ q $ 通常記作 $ p \ operatorname { XOR } q $ 抑是 $ p \ oplus q $。佇咧程式語言內底,捷寫作 ` p ^ q `。
真值表
相斥抑是運算 $ p \ oplus q $ 的真值表現落來:
無論按怎改變仝一行中 $ p , q , p \ oplus q $ 的位置喔,真值表攏是成立的。
其他的表示
佇咧數學佮工程學中,定定用其他的邏輯運算子來表示相斥抑是算符。互斥抑是算符仔會使得用邏輯算符邏輯和 $ \ land $,邏輯抑是 $ \ lor $ 佮邏輯非 $ \ lnot $ 表示講:
- $ { \ begin { aligned } 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 } } ) \ \ &=( p \ lor q ) \ land \ lnot ( p \ land q )=( p + q ) ( { \ overline { pq } } ) \ end { aligned } } $
另外咧,互斥抑是講有符合會當予人推廣,得著關於著 _ n _ 運算元的互斥抑是運算:_ n _ 個運算元的 _ n _ 維互斥抑是的值為真若閣唯若其中值為真正運算元有奇數个。
互斥抑是講嘛會當予人表示講:
- $ p \ oplus q=\ lnot ( ( p \ land q ) \ lor ( \ lnot p \ land \ lnot q ) ) $
互斥抑是閣會當看做是邏輯等價關係的非運算。
性質
交換律:$ p \ oplus q=q \ oplus p $
結合律:$ p \ oplus ( q \ oplus r )=( p \ oplus q ) \ oplus r $
恆等律:$ p \ oplus 零=p $
歸零律:$ p \ oplus p=零 $
自反:$ p \ oplus q \ oplus q=p \ oplus 零=p $
佮抽象的代數的關係
就算子 $ \ wedge $(邏輯合取)佮 $ \ lor $(邏輯析取)是邏輯系統當中上捷看著的算是,但結構頂懸,系統 $ ( \ { T , F \ } , \ wedge ) $ and $ ( \ { T , F \ } , \ lor ) $ 干焦是屘囝半陣。所以,這兩个系統無法度合成做一个閣較大的結構,譬如講環環。
猶毋過,帶有邏輯互斥抑是的系統 $ ( \ { T , F \ } , \ oplus ) $ 是一个交換群。所以,算子 $ \ wedge $ 佮 $ \ oplus $ 的結合佇集合 $ \ { T , F \ } $ 上作用就產生了上基本的二元域 $ F _ { 二 } $。這个域會當著所有運用 $ ( \ land , \ lor ) $ 會當得著的結果,並且因為附近所在的結構,會當進行代數的進一步分析。
類似符號
應用
使用相斥抑是運算交換兩个 int 類型變數的數值
C / C + +
Java
C #
雖然 XOR 算會當提來交換變數,但比起使用額外變數來交換變數的做法比,效能顛倒較䆀。
參考來源
參見
- 互斥抑是閘
- 互斥抑是密碼