http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vclrfbitwiseexclusiveoroperator.asp异或:当且仅当两位中有一位是1时候,结果位是1。主要用于开关一个位值。使用方法是对原
有内容进行异或操作,要变换的位为1,保持的为0。例如要变换1,3位,则使用:
0101。

解决方案 »

  1.   

    异或,就是当两bit值不同的时候输出1,相同时输出0;这就可以推出在一个为1时,输出结果将为另一位取反,而当一位为0 时,输出结果就等于另一位,从而可以完成楼上仁兄所说的功能;另外,异或用在编码中比较多
      

  2.   

    直接用异或,有时可以节省资源的开销,简化程序
    一个很简单的例子:
    将变量a与变量b换位a = a ^ b;
    b = a ^ b;
    a = a ^ b;
      

  3.   

    异或:是在两个bit之间发生的计算,只有当两个bit相同即均为0或者均为1的时候结果为1,否则,只要两个bit不同结果就为0,主要用开关,比较是否相等等情况下,主要还要看具体问题,然后再具体分析,开发中会经常遇到这种情况的。
      

  4.   

    to:hanxue1983(寒雪)
    概念和一些简单的应用我也是在学需要重写System.Object得GetHashCode的时候,里面提到一个使用异或结合属性值来产生哈西码的方式,我想知道为什么这样做可以保证唯一性
      

  5.   

    说点看法,不一定对:
    “一个类型常具有多个可以参与生成哈希代码的数据字段。生成哈希代码的一种方法是使用 XOR (eXclusive OR) 运算合并这些字段。”
    这句话的意思是不是这样,使用异或只是生成哈希代码的一种方法。方法本身并不能保证哈希值唯一,要保证哈希值唯一就要保证参与异或的值唯一。比如这个:
     public override int GetHashCode () {
         return a.GetHashCode() ^ b.GetHashCode() ^ c.GetHashCode();
       }
      

  6.   

    “对于整型,^ 计算操作数的按位“异或”,如何理解? ”
    我想是这样,对于两个操作数按位异或,可以使两个操作数中相同的"位"置为0,不同的"位"置为1。
    这样的结果中必然与操作数不同(当然要保证任一操作数不能为0)。这也是异或比“与”或“或”的优点吧。比如
    111^011=100;101^100=001//只有这个的结果与原操作数不同
    111&011=011;101&100=100
    111|011=111;101|100=101