用函数举例说明:下面的函数bitcount统计其整数型参数的值为1的二进制的个数。
/* bitcount函数:统计x中值为1的二进制位数 */
int bitcount(unsigned x)
{
int b;
for (b = 0;x != 0;x >>=1)
if(x & 01)
b++;
return b;
}
这里将x声明为无符号类型是为了保证将x右移时,无论该程序在什么机器上运行,左边空出的位都用0(而不是符号位)填补。
练习2-9
#include <stdio.h>
#include <stdlib.h>
int bitcount(unsigned x);
int main()
{
int a, b;
a=7;
b=bitcount(a);
printf("%d\n", b);
system("pause");
return 0;
}
int bitcount(unsigned x)
{
int b;
for (b=0; x!=0; b++)
x&=(x-1);
return b;
}
这是代码运行结果