欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C语言】——求一个整数存储在内存中二进制中的1的个数的三种方法

程序员文章站 2022-07-15 09:56:59
...

编写代码实现:求一个整数存储在内存中二进制中的1的个数

方法(1)

//(1)方法
int main(){

	int num = 10;
	int count = 0;//计数
	while (num){
		if (num % 2 == 1)
			count++;
		num = num / 2;
	}				  
	printf("二进制中1的个数为:%d\n",count);
	return 0;
}

方法(2)

//(2)方法
int main(){
	int num = -1;
	int i = 0;
	int count = 0;//计数
	for (i = 0; i < 32;i++){
		if (((num >> i) & 1) == 1)
			count++;
	}
	printf("二进制中1的个数为:%d\n",count);
	return 0;
}

方法(3)

//(3)方法
int main(){
	int num = -1;
	int i = 0;
	int count = 0;
	while (num){
		count++;
		num = num &(num - 1);
	}
	printf("二进制中1的个数为:%d\n",count);
	return 0;
}

 

相关标签: C语言 c语言