逻辑异或

当且仅当两个输入值中一个为真时输出为真

(重定向自XOR

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

文氏图

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

逻辑异或相当于逻辑不等价,或者说逻辑异或的逻辑非逻辑等价

真值表编辑

异或运算 真值表如下:

TrueTrueFalse
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse
注:True:真,False:假。

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

其他表示编辑

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

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

异或也可以被表示为:

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

性质编辑

交换律

结合律

恒等律

归零律

对合运算

与抽象代數的關係编辑

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

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

類似符號编辑

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

應用编辑

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

C/C++

void swap(int *a, int *b) {    *a ^= *b;    *b ^= *a;    *a ^= *b;}

Java

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

C#

public void swap(ref int a,ref int b){    a ^= b;    b ^= a;    a ^= b;}

Rust

fn swap<'a, 'b>( num_a: &'a mut i32, num_b: &'b mut i32 ) {    *num_a ^= *num_b;    *num_b ^= *num_a;    *num_a ^= *num_b;}

雖然XOR運算可用來交換變數,但比起使用額外變數來交換變數的做法相比,效能反而比較差。

参考来源编辑

  1. ^ Germundsson, Roger; Weisstein, Eric. XOR. MathWorld. Wolfram Research. [17 June 2015]. (原始内容存档于2015-09-05). 

参见编辑

🔥 Top keywords: Baike: 首页Special:搜索胖猫跳江事件背着善宰跑九龍城寨之圍城逆天奇案2璩静淚之女王歌手2024Energy (組合)新生 (网络剧)习近平匈牙利邊佑錫劉俊謙 (香港)金智媛神耆小子塞尔维亚金秀賢 (男演員)母亲节猩球崛起:王國誕生九龍寨城馴鹿寶貝家族榮耀之繼承者Seventeen (組合)六四事件不夠善良的我們张维为楊佩潔TripleS支配物种庆余年郭葦昀洪若潭命案金惠奫2024年英雄联盟季中邀请赛春色寄情人BABYMONSTER笑看風雲乘風2024排球少年!!角色列表破墓徐巧芯中华人民共和国中華民國打天下2WIND BREAKER—防風少年—习明泽排球少年!!彭丽媛磁暴ILLIT贾斯汀·比伯逆天奇案BOYNEXTDOOR猿人爭霸戰:猩凶革命張書偉我的婆婆怎麼那麼可愛我獨自升級怪獸8號謝坤達IVE (組合)與鳳行關於我轉生變成史萊姆這檔事角色列表黃道十二宮福建號航空母艦虽然不是英雄葉乃文五月天張員瑛草榴社区張文傑2024年花蓮地震极光香緹·摩爾迷宮飯呂家愷搜查班長1958日本劉德華海莉·鮑德溫蕭景鴻越位 (足球)葬送的芙莉蓮周處除三害 (電影)毛泽东願榮光歸香港林峯周雨彤伍允龍羅毓儀香港Baike: 分類索引沒有秘密猩球崛起:終極決戰角質層唐振剛柯佳嬿文化大革命