2010-07-14 49 views
-5

可能重複:
What does ‘^’ do in c# (Enums)?XOR定義(這句話是讓標題可以接受的)

這可能是一個noobish問題,而是......無處沒看到什麼異或手段在C++或C#中。我認爲這可能意味着和/或如果確實如此,我很聰明,這是一個盲目的猜測= D。我現在使用C#,但我很確定xor的意思是一樣的。問題是 - 我不知道異或的含義。我知道xor是由^代表的。我也想知道^^是什麼意思。

+2

的許多問題,包括[?什麼是 '^' 做在C#(枚舉)(http://stackoverflow.com/questions/234776/what-does複製-do-in-c-enums)=和[^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (http://stackoverflow.com/questions/1508153/is-the-operator-really-the-xor-operator-in-c)。 – 2010-07-14 05:03:10

+1

你應該把你的標題改爲「在C++/C#中異或(^)是什麼意思?」或類似的東西。 (儘管我認爲XOR在所有語言中都是相同的):D – Dian 2010-07-14 05:14:27

回答

2

谷歌搜索「define:xor」會指向您所有知識的源泉http://en.wikipedia.org/wiki/Xor。讀這會給你的洞察力,以什麼異或(XOR)表示:)

古德勒克

[編輯] 而只是爲了澄清,XOR並不意味着和/或,對不起。 xor的定義是獨立於編程語言的。

+2

沒有'^^',因爲它不能做短路,'!='和'^'都可以作爲非短路布爾XOR。 – 2010-07-14 05:05:30

+0

......除非你的語言沒有嚴格的布爾值。 – dan04 2010-07-14 06:07:57

1

XOR代表'異或OR'。 只有其中一個參數爲真,而不是兩者都是唯一或操作結果爲真。

具有1爲真值,而0爲假,按位運算的值給出時1僅在對應位置中的一個比特是1。

6

異或兩個比特之間表示該結果是1,如果一個且只有一個位是1

的真值表是:

| 0 | 1 
---+---+--- 
0 | 0 | 1 
1 | 1 | 0 

當你談論異或一個較大的值,它只是把每一位一次一個,所以:

1111 0000 
xor 1010 1010 
    ---- ---- 
    = 0101 1010 

對於它的價值,二進制操作的完整列表:

  • and,1只有當它的兩個輸入都是1,否則爲0。
  • or,0只有當它的兩個輸入均爲0 ,否則1.
  • xor,1只有當其輸入端之一(不是兩個)爲1,否則爲0。
  • not,1僅當它的輸入爲0,否則1.

而事實表:

and| 0 | 1  or| 0 | 1  xor| 0 | 1  not| 0 | 1 
---+---+--- ---+---+--- ---+---+--- ---+---+--- 
0 | 0 | 0  0 | 0 | 1  0 | 0 | 1  | 1 | 0 
1 | 0 | 1  1 | 1 | 1  1 | 1 | 0 
相關問題