我是靠谱客的博主 甜美裙子,最近开发中收集的这篇文章主要介绍计算一个值中为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的位的个数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部