#include <bits/stdc++.h>
using namespace std;
int zxw(int i)
{
int j = 0;
while (i)
{
j++;
i &= (i - 1);
}
return j;
}
int main(void)
{
cout << zxw(7);
}
思路:把一个整数减1,再和原来整数做与运算,就等于把最右边的1变成了0。
#include <bits/stdc++.h>
using namespace std;
int zxw(int i)
{
int j = 0;
while (i)
{
j++;
i &= (i - 1);
}
return j;
}
int main(void)
{
cout << zxw(7);
}
思路:把一个整数减1,再和原来整数做与运算,就等于把最右边的1变成了0。