-5

可能重复:
'^' 在 c#(枚举)中做了什么?

这可能是一个愚蠢的问题,但是......我在任何地方都没有看到 Xor 在 C++ 或 C# 中的含义。我认为这可能意味着和/或如果确实如此,我很聪明,因为这是一个盲目的猜测=D。我现在使用 C#,但我很确定 xor 的意思是一样的。问题是 - 我不知道 xor 是什么意思。我知道 xor 虽然由 ^ 表示。我也想知道^^是什么意思。

4

3 回答 3

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 时为 1,否则为 0。
  • not, 仅当其输入为 0 时为 1,否则为 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 
于 2010-07-14T05:03:36.667 回答
2

谷歌搜索“define: xor”将指向http://en.wikipedia.org/wiki/Xor,所有知识的源泉。阅读本文将使您了解异或(XOR)的含义:)

祝你好运

[编辑] 只是为了澄清一下,xor 并不意味着和/或,对不起。并且 xor 的定义与编程语言无关。

于 2010-07-14T05:00:44.460 回答
1

XOR 代表“异或”。异或运算结果为真,仅当参数之一为真时,而不是两者都为真。

将 1 作为 true 的值,将 0 作为 false 的值,当对应位置只有一个位为 1 时,按位运算给出 1。

于 2010-07-14T05:03:05.130 回答