概述
一、这里介绍C语言一种快速计算出一个无符号数一共有多少个“”1”位数的方法。核心思想是(m & (m - 1)每次调用就消除一个1,直接看下面代码。
#include <iostream>
#include "stdio.h"
#include <stdlib.h>
using namespace std;
#define Is2n(x) ((x & (x - 1))? 0 : 1)
int main()
{
unsigned long int value,temp,number;
while(true)
{
printf("please input a unsigned int n");
scanf("%d",&value);
number=0;
temp=value;
while(value>0)
{
value=(value&(value-1));
number++;
}
printf("The total of bits 1 of %d is %d n",temp,number);
}
return 0;
}
二、运行结果:
三、我比较笨,刚开始想了半天才明白其中的奥秘,感觉好神奇吧。
最后
以上就是纯情纸鹤为你收集整理的C语言快速计算出一个无符号数一共有多少个“”1”位数的方法的全部内容,希望文章能够帮你解决C语言快速计算出一个无符号数一共有多少个“”1”位数的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复