xor 邏輯異或 - 程式人生
文章推薦指數: 80 %
異或(xor)是一個數學運算子。
它應用於邏輯運算。
異或符號為“^”。
其運演算法則為:. a^b=(a' and b) or (a and b')(a'為非a)。
程式人生>>xor邏輯異或
xor邏輯異或
阿新••發佈:2019-01-06
定義
ExclusiveOR(異-或運算)
異或(xor)是一個數學運算子。
它應用於邏輯運算。
異或符號為“^”。
其運演算法則為:
a^b=(a'andb)or(aandb')(a'為非a)。
真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。
就是說兩個值不相同,則異或結果為真。
反之,為假。
不同為1,相同為0.
異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
異或略稱為XOR、EOR、EX-OR
程式中有三種演運算元:XOR、xor、^。
使用方法如下
z = x ^ y;
z = x xor y;
編輯本段異或運演算法則
1.a^a=0
2.a^b=b^a
3.a^b^c=a^(b^c)=(a^b)^c;
4.d=a^b^c可以推出a=d^b^c.
5.a^b^a=b.
6.若x是二進位制數0101,y是二進位制數1011
則x^y=1110
只有在兩個比較的位不同時其結果是1,否則結果為0
即“相同為0,不同為1”!
輸入
運算子
輸入
結果
1
^
0
1
1
^
1
0
0
^
0
0
0
^
1
1
編輯本段異或邏輯
異或邏輯的真值表如圖1所示,其邏輯符號如圖2所示。
異或邏輯的關係是:當AB不同時,輸出P=1;當AB相同時,輸出P=0。
“⊕”是異或運算子號,異或邏輯也是與或非邏輯的組合,其邏輯表示式為:
P=A⊕B
由圖1可知,異或運算的規則是
0⊕0=0,0⊕1=1
1⊕0=1,1⊕1=0
口訣:相同取0,相異取1
事實上,XOR在英文裡面的定義為eitherone(isone),butnotboth,也即只有一個為真(1)時,取真(1)。
編輯本段作用
在計算機中普遍運用,異或(xor)的邏輯符號^(Shift+6)或一個圓圈裡面增加一個+(⊕)或者·.形象表示為:
真^假=真
假^真=真
假^假=假
真^真=假
或者為:
True^False=True
False^True=True
False^False=False
True^True=False
部分計算機語言用1表示真,用0表示假,所以兩個位元組按位異或如下
00000000
異或
00000000
=
00000000
============我是分界線1============
下面是兩個二進位制數值進行異或計算:
11111111
異或
00000000
=
11111111
============我是分界線2============
現實中用的都是十進位制的數值,那麼我們來看一看兩個十進位制數值是怎麼進行異或計算:
5異或2=?
1.進行異或計算前會把數值都轉換為二進位制的:
5和2轉為二進位制分別為:0101、0010
0101
異或
0010
=
0111
2.再把結果0111轉換為十進位制的:7
3.所以5異或2=7,而不是大家想像的5和2不同,則為1(真).
編輯本段異或的巧妙應用
C語言中若需要交換兩個變數的值,除了通常使用的借用中間變數進行交換外,還可以利用異或,僅使用兩個變數進行交換,如:
a=a^b;//賦值
b=b^a;//賦值
//b^a=b^(a^b)=b^a^b=a;//等號等於的意思
a=a^b;//賦值
//a^b=a^b^a=b;等號是等於的意思
這樣就完成了a與b的交換。
Windows10VHD安裝
«上一篇
Android開發——去除介面頂部的灰色標題欄下一篇»
相關推薦
xor邏輯異或
定義
ExclusiveOR(異-或運算)
異或(xor)是一個數學運算子。
它應用於邏輯運算。
異或符號為“^”。
其運演算法則為:
a^b=(a'and...
【algorithm】有趣的邏輯運算:邏輯與和邏輯異或
Date:2018.10.31
之前學了很久的數電,今天終於發現了其魅力所在,有點後知後覺了,哈哈…最近發現一個有趣的演算法...
邏輯異或"^"
#include
&&稱為簡潔與或者短路...
linuxshell中邏輯與,或表示式
與&&
1)if[$str=a...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
xor+邏輯異或
JAVA中+return的用法
cmd+-+命令行窗口中文亂碼
mongodb以background方式建立索引
群論相關概念入門
Cesium+概述+(二)+空間資料視覺化
用u盤裝系統,進入bios後沒有usb啟動項怎麼辦
【奇淫巧技】XSS繞過技巧
eclipse恢復預設佈局
sed指令實踐---用於排序
延伸文章資訊
- 1Xor 運算子
用來在兩個運算式上做邏輯互斥。 語法. [result =] expression1 Xor expression2. Xor 運算子的語法具有以下幾個單元: ...
- 2邏輯運算、位元運算
接下來看看位元運算子(Bitwise operator),數位設計上有AND、OR、NOT、XOR 與補數等運算,在C 中提供這些運算的就是位元運算子,它們的對應分別是AND ( & )、OR(...
- 3XOR 位元運算子
... 還一直想說到底要怎麼使用XOR才能得到正確答案!以上就是XOR的介紹,其實只要記住一點,當兩個條件中有一個條件不成立時,就等於條件成立了,就能很簡單運用XOR了!
- 4位元XOR運算(^) | 86Duino
int c = a | b; // result: 00000000000000000000000001111101, or 125 in decimal. 位元運算XOR (^). 這是一個特...
- 5邏輯互斥或- 維基百科,自由的百科全書