位运算
位运算即是在位级别进行操作的技术,合适的位运算能够帮助我们得到更快的运算速度与更小的内存使用。
常见的位运算:
- 测试第k位:
s & (1 << k)
- 设置第k位:
s |= (1 << k)
- 第k位置零:
s &= ~(1 << k)
- 切换第k位值:
s ^= ~(1 << k)
- 乘以2^n:
s << n
- 除以2^n:
s >> n
- 交集:
s & t
- 并集:
s | t
- 减法:
s & ~t
- 交换:
x = x ^ y ^ (y = x)
- 取出最小非0位(Extract lowest set bit):
s & (-s)
- 取出最小0位(Extract lowest unset bit):
~s & (s + 1)
- 交换值:
x ^= y; y ^= x; x ^= y;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yupaits的博客!
评论