概述
利用移位运算符实现位的计算
#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的位的个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复