1. 程式人生 > >寫一個函式返回引數二進位制中 1 的個數 比如: 15 0000 1111 4 個 1

寫一個函式返回引數二進位制中 1 的個數 比如: 15 0000 1111 4 個 1

     執行環境: win10  vs2013

        通常我們從數字鍵盤輸入的數字是10進位制的數,所以在統計某一個數字二進位制中有多少個一時,就需要先將10進位制的數轉換為二進位制,而十進位制轉換為二進位制最簡單的就是對這個數字進行除二運算,在除二運算完後然後對他進行模二運算,如果模二運算的結果等於一,那麼就對其進行加一統計,直到所有數字統計完成後,進行輸出即可

程式實現:

程式執行結果測試:

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int value)
{
	int count= 0;
	while (value)//value為0時跳出迴圈
	{
		if (value % 2)
			count++;
		value = value / 2;
	}
	return count;
}
int main()
{
	int i = 0;
	int result = 0;
	printf("請輸入一個正數:");
	scanf("%d", &i);
	result = count_one_bits(i);
	printf("result=%d\n", result);
	system("pause");
	return 0;
}