我是靠谱客的博主 纯情纸鹤,这篇文章主要介绍C语言快速计算出一个无符号数一共有多少个“”1”位数的方法,现在分享给大家,希望可以做个参考。

一、这里介绍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”位数内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部