XOR定义(这句话是让标题可以接受的)
这可能是一个noobish问题,而是......无处没看到什么异或手段在C++或C#中。我认为这可能意味着和/或如果确实如此,我很聪明,这是一个盲目的猜测= D。我现在使用C#,但我很确定xor的意思是一样的。问题是 - 我不知道异或的含义。我知道xor是由^代表的。我也想知道^^是什么意思。
谷歌搜索“define:xor”会指向您所有知识的源泉http://en.wikipedia.org/wiki/Xor。读这会给你的洞察力,以什么异或(XOR)表示:)
古德勒克
[编辑] 而只是为了澄清,XOR并不意味着和/或,对不起。 xor的定义是独立于编程语言的。
没有'^^',因为它不能做短路,'!='和'^'都可以作为非短路布尔XOR。 – 2010-07-14 05:05:30
......除非你的语言没有严格的布尔值。 – dan04 2010-07-14 06:07:57
XOR代表'异或OR'。 只有其中一个参数为真,而不是两者都是唯一或操作结果为真。
具有1为真值,而0为假,按位运算的值给出时1仅在对应位置中的一个比特是1。
异或两个比特之间表示该结果是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
的许多问题,包括[?什么是 '^' 做在C#(枚举)(http://*.com/questions/234776/what-does复制-do-in-c-enums)=和[^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (http://*.com/questions/1508153/is-the-operator-really-the-xor-operator-in-c)。 – 2010-07-14 05:03:10
你应该把你的标题改为“在C++/C#中异或(^)是什么意思?”或类似的东西。 (尽管我认为XOR在所有语言中都是相同的):D – Dian 2010-07-14 05:14:27