我是靠谱客的博主 甜美裙子,这篇文章主要介绍计算一个值中为1的位的个数,现在分享给大家,希望可以做个参考。

利用移位运算符实现位的计算

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int count_one_bits(int val)
{
	int one = 0;//统计为1的位的个数
	//通过右移位的方式不断对值的第一位进行统计,直到值变为0
	for (; val != 0; val >>= 1)
	{
		//例如001&011=001,结果为1,则说明当前位为1
		if ((val & 1) == 1)
		{
			one++;
		}
	}
	return one;
}

int main()
{
	int value = 0;
	printf("PLEASE INPUT A NUMBER:");
	scanf("%d",&value);
	int ret = count_one_bits(value);
	printf("%dn", ret);
	return 0;
}

此代码只适用于无符号数的实现,负数不可实现

最后

以上就是甜美裙子最近收集整理的关于计算一个值中为1的位的个数的全部内容,更多相关计算一个值中为1内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部