lowbit 操作

lowbit

  • lobit 操作 得到将 十进制 数 对应 二进制数 从后往前出现的第一个 1 及其以后 的数(直接砍掉)
  • x & -x
int loebit(int x)
{
    return x & -x;  
}
  • 通过lowbit 操作计算 1的个数
  • 根据砍掉的次数
#include<iostream>
using  namespace std;
int loebit(int x)
{
    return x&-x;
}
int main()
{
    int cnt=0,n;
    cin>>n;
    while(n)
    {
        x -= lowbit(x)// 把后面带 1 的数直接砍掉
        cnt++;
        
    }
    
    cout<<cnt;
    return 0;
}
posted @ 2020-05-10 12:30  Acm_walker  阅读(148)  评论(0)    收藏  举报