异或的使用

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和那个数的异或,最终结果就是那个数本身

转载于:https://my.oschina.net/zhaomengit/blog/272094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值