整数的二进制表示中1 的个数

今天看K&R的《C语言程序设计》,P41页有个例子。我一看,咦?怎么这么熟悉。结果是100题目里面的第28题:整数的二进制表示中1 的个数:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。

       原来的我的实现就是在将其换算成为2进制数,然后再统计。这样实在太笨了。其实做与运算就可以了。做与运算的时候,自然系统将操作数换成了2进制了。

       代码如下:

# include <stdio.h> int bitcount(unsigned x) { int count = 0; for (; x != 0; x >>= 1) if (x & 01) count ++; return count; } int main(){ int b = 15; int result = bitcount(b); printf("%d", result); }

原来可以多么简洁……

你可能感兴趣的:(c,语言,include)