【问题标题】:Difference between bitwise inclusive or and exclusive or in javajava中按位包含或和排他或之间的区别
【发布时间】:2013-05-14 14:43:47
【问题描述】:
public class Operators {

    public static void main(String[] args) {        
        int a = 12;

    System.out.println("Bitwise AND:"+(12&12));
    System.out.println("Bitwise inclusive OR:"+(12|12));
    System.out.println("Bitwise exclusive OR:"+(12^12));

    }
}

OUTPUT:

Bitwise AND:12
Bitwise inclusive OR:12
Bitwise exclusive OR:0

前两个我懂,第三个不懂。

【问题讨论】:

    标签: java operators bitwise-operators


    【解决方案1】:

    BITWISE INCLUSIVE OR (|) 表示正常的运算,

    BITWISEE 异或 (^) 表示 xor 运算

    【讨论】:

      【解决方案2】:

      第三个是异或运算(Xclusive-OR)

      它说,OR 应该是: 相似的地方是 False(0) 和不同将是 True(1)。

      所以二进制的 12 是 1100

      所以,在这里执行按位异或:

        1 1 0 0
        1 1 0 0
      ---------
        0 0 0 0
      ---------
      

      每一列都有相同的数字,要么都是 1,要么都是 0 XOR 说,两者应该不同。因此全为零

      【讨论】:

        【解决方案3】:

        独占或(XOR)定义为:

        0 ^ 0 = 0
        1 ^ 0 = 1
        0 ^ 1 = 1
        1 ^ 1 = 0
        

        即两个值相同时为0,不同时为1

        因此,给定两个完全相等的位模式,每个 XORed 位将计算为 0,因为每个位要么在两个位置都有 1,要么在两个位置都有 0

        【讨论】:

          【解决方案4】:

          XOR 判断每个位是否不同。

          1 异或 1 = 0
          1 异或 0 = 1
          0 异或 1 = 1
          0 异或 0 = 0

          换句话说,“两者都不是”

          0011 异或 0101 = 0110

          【讨论】:

            猜你喜欢
            • 2016-11-07
            • 1970-01-01
            • 2014-06-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-02
            • 2015-03-28
            • 2011-09-09
            相关资源
            最近更新 更多