位运算
位运算
n的二进制表示中第k位是几
- 先把第k位移到最后一位
n >> k
n >> k
的操作不会改变n
本身的值 - 看个位是几
x & 1
两个步骤加起来就是n >> k & 1
输出10的二进制数代码示例
1 | LL n = 10; |
lowbit(x)
:返回x的最后一位1
原理和实现
lowbit(x)
操作相当于x & -x
=x & (~x + 1)
自己拿一个数模拟一下就知道了为什么了
代码实现(stl没有):
1 | LL lowbit(LL x) { |
应用
计算二进制中1的个数,代码实现:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sevin的小窝!
评论