我是靠谱客的博主 纯情纸鹤,最近开发中收集的这篇文章主要介绍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”位数的方法所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部