AcWing
首页
课程
题库
更多
竞赛
题解
分享
问答
应用
历史记录
清除记录
猜你想搜
AcWing热点
App
登录/注册
位运算
作者:
辰郭子
, 2024-01-24 21:26:08 , 所有人可见 , 阅读 61
2
最常用的操作就是求二进制表示中,第k位是几。
注意:在二进制中,是从右往左从0开始求下标。
我们需要:
先把第k位移到最后一位(n >> k)。
看第0位是几(x & 1)。
公式:
把1和2结合到一起,即n >> k & 1
还有一个lowbit(x)操作,返回x的最后一位1。
公式:
x & (-x)
原理:
因为C++里的负数都是用补码存的,-x=~x+1。
这样,在最后一位1及前面都是一样的,后面都不一样,一与就能得到答案。
原码、反码和补码
原码:指x的二进制
反码:原码的除符号位所有位取反
补码:反码加一
注意:正数的原、反、补相等,上面说的只对负数有效。
0 评论
提交评论
你确定删除吗?
AcWing
请输入登录信息
记住我
请输入绑定的邮箱地址
请输入注册信息