https://www.cnblogs.com/dingyingsi/p/6075967.html
异或常用性质:
a^a=0
a^0=a
a^(-1)=~a 表示按位取反
求某个数最低位为1的快速方法:a&(-a) 其中-a = ~a+1
异或运算经常用于查找数组中 出现奇数次的单个元素。
当存在多个元素(通常为2个),需要先将数组划分为两个子数组,保证每个出现多次的在一个子数组内,出现奇数次的两个数分到两个子数组中,最后分别对两个子数组异或得到这两个元素。
https://blog.csdn.net/ns_code/article/details/27568975
来自剑指OFFER:
把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边一个1变成0