置顶顶顶顶顶顶顶顶顶顶顶顶顶
位运算技巧总结(持续更新中...)
使用异或运算可以帮助我们消除出现两次的数字
x & (-x) 是保留位中最右边 1 ,且将其余的 1 设为 0 的方法。
(当x不为0)x & (x-1) 是将最右边的 1变为0,且其余位保持不变 的方法。
另外:
把右起第一个0变成1: x or (x+1)
把右边连续的1变成0:x and (x+1)
把右边连续的0变成1:x or (x-1)
三、将某一位置0或置1或取反
将x的(从右数)第i位置1,x=x | (1<<(i-1))
将x的(从右数)第i位置0,x=x & !(1<<(i-1))
将x的(从右数)第i位取反,x=x ^ (1<<(i-1))