位运算:XOR异或

 

规则:

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

 

数学符号:⊕

英文简称:xor

程序符号:^

 

运算法则:

1. a ⊕ a = 0

2. a ⊕ b = b ⊕ a

3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;

4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.

5. a ⊕ b ⊕ a = b.

6.若x是二进制数0101,y是二进制数1011;

则x⊕y=1110

 

 

应用:

基于法则5,用位运算实现数组元素交换:

private static void exchange(int[] arr, int x, int y) {
        arr[x] = arr[x] ^ arr[y];
        arr[y] = arr[x] ^ arr[y];
        arr[x] = arr[x] ^ arr[y];
    }
发布了205 篇原创文章 · 获赞 27 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/huangdingsheng/article/details/105490250