寫一個函式返回引數二進位制中 1 的個數 比如: 15 0000 1111 4 個 1
阿新 • • 發佈:2018-12-17
執行環境: 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; }