异或的使用

1.异或运算公式.

  1. 交换律: a ^ b = b ^ a

  2. 结合律: a ^ b ^ c = ( a ^ b ) ^ c = a ^ ( b ^ c)

  3. a ^ a = 0, 0 ^ a = a

  4. 自反性: a ^ b ^ a = b

  5. d = a ^ b ^ c 可以得出 a = d ^ b ^ c

2.可以利用异或解决的事

  1. 交换两个数

    交换两个数a,b可以有多种方式: 借助临时变量,如果不是用额外的变量可以做加减.

    a = a + b;

    b = a - b;

    a = a - b;

    或者做异或:

    a = a ^ b;

    b = a ^ b;( b = a ^ b ^ b 即 b = a)

    a = a ^ b;

  2. 选择不成对的某个数.

    先看一个例子:

    题目描述:给定2n + 1个数,除了有一个数字外,其他数字都出现2遍,求这个数.

    这个现在做起来比较简单了 这些数直接异或的结果就是那个数.

    两个相同的数异或为0,所以有n个0和那个数的异或,最终结果就是那个数本身

你可能感兴趣的:(异或的使用)