#include <conio.h>
int OneCount( int n )
{
int nCount = 0;
while( n )
{
nCount++;
n &= n-1;
}
return nCount;
}
int High( int n)
{
while ( n & (n-1) )
{
n |= n-1;
n++;
}
return n;
}
int main(int argc, char* argv[])
{
int n = 0;
do
{
printf("Input a num please:");
scanf("%d", &n);
printf("Bit count is:%d/n", OneCount(n));
printf("High numer is:%d/n", High(n));
} while ( getch() != 32 );
return 0;
}
本文介绍了一种使用位操作来计算整数中1的个数的方法,并实现了一个将数值转换到下一个更高位数值的算法。通过C语言实现,用户可以输入任意整数,程序会输出该整数二进制表示中1的个数及其对应的高位置换后的结果。
338

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



