给定一个十进制数,将其与1按位与,若结果的末位为1则说明原十进制数末位必为1.
再用移位操作符将十进制数的上一位变成末位,循环进行。
#include<stdio.h>
int main()
{
int count = 0;
int a = 123;
for (; a != 0; )
{
if (a & 1 == 1)
{
count++;
}
a >>= 1;
}
printf("%d", count);
return 0;