题目描述:求一个整数中2进制为1的个数. 例如 :8(00001000)有一个二进制为1的数,9999(270F)有8个2进制为1的数。
代码实现:
#include <stdio.h>
/* 求一个整数中2进制为1的个数 */
int func(int x)
{
int count = 0;
while(x)
{
count ++;
x = x & (x - 1);
}
return count;
}
int main(void)
{
int count_value;
count_value = func(88);
printf("%d\n", count_value);
}
本文介绍了一个计算整数中二进制位1的数量的算法。通过使用位运算,该算法能够高效地计算出任意整数的二进制表示中有多少位是1。代码示例使用C语言实现,通过while循环和位与操作逐步消除二进制表示中的1,直至整数变为0。
3&spm=1001.2101.3001.5002&articleId=82792512&d=1&t=3&u=e5816ffd3314438dbad37094bdc45a1c)
1万+

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



