操作:
- 先把第k位移到最后一位(右边第一位)
- 看个位是1还是0
lowbit(x):返回x的最右边的1。
原理:
其中 ,意思是 是 的补码。
就可以求出最右边的一位1。
应用:
当中 的个数。
int res = 0; // 1的个数
while(k>0){
if((k&1)==1) res++; //个位是1
k = k>>1; // 向右移一位
}
lowbit(x):返回x的最右边的1。
其中 ,意思是 是 的补码。
就可以求出最右边的一位1。
当中 的个数。
int res = 0; // 1的个数
while(k>0){
if((k&1)==1) res++; //个位是1
k = k>>1; // 向右移一位
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/425698.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!