看这个内容,需要有的前置知识:
二进制简介
位运算简介
位运算应用
我们之前学习了基础的位运算,不过有时我们需要进行更复杂的运算表示我们想要表达的意思,那么我们来看一看位运算有哪些性质,有哪些我们常见的使用位运算的技巧。
- 按位与,都是1才是1
- 按位或,都是0才是0
- 异或,A^ A =0,A^ B ^A=B
- 判断第i位是不是1,(x>>i)&1,这个结果就是0或者1
- 另一种写法就是x&(1<<i),这个如果是1的结果是1<<i
- 将x的第i位变成1,x|(1<<i)
- 将x的第i位取反,x ^ (1<<i)
- 判断i是不是j的子集,i&j==i
- 判断i和j的交为空,i&j==0
- i是 j 的子集,求在 j 中 i 的补集,j ^ i
- 前缀异或和,两个前缀异或和异或就是这段区间的异或和