输入一个无符号整数,统计该整数中含1的比特数。
#include<stdio.h>
int numbits(unsigned int n)
{
int count = 0;
while(n>0){
n &= (n-1);//每次操作去掉n中最低位的1
count++;
}
return count;
}
int main()
{
unsigned int n;
scanf("%d",&n);
printf("%d\n",numbits(n));
return 0;
}
本文介绍了一个简单的C语言程序,用于统计输入的无符号整数中1的比特数。通过位操作方法实现,具体步骤为:利用n & (n-1)去除n中最右边的一个1,直至n变为0,计数器记录操作次数即为所求比特数。
输入一个无符号整数,统计该整数中含1的比特数。
#include<stdio.h>
int numbits(unsigned int n)
{
int count = 0;
while(n>0){
n &= (n-1);//每次操作去掉n中最低位的1
count++;
}
return count;
}
int main()
{
unsigned int n;
scanf("%d",&n);
printf("%d\n",numbits(n));
return 0;
}
845

被折叠的 条评论
为什么被折叠?