100题_22 整数的二进制表示中1的个数
输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
这个题非常简单,考的是位运算,我们每次向左移1位,判断最后一位是不是1就可以了。不多说了,代码如下:
#include <stdio.h>
int count_one(int x)
{
int count = 0;
while (x != 0)
{
if (x&1 == 1)
count ++;
x = x>>1;
}
return count;
}
int main()
{
printf("%d ", count_one(3));
return 0;
}
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。