C/C++程式計算整數中設定的位數?
計數設定的位數意味著計算給定整數的 1 的個數。為此,我們有多種可應用的解決方案。在本例中,我們有一個二進位制數(整數的二進位制表示),我們必須計算字串中 1 的個數。
為了計算 1 的個數,我們將獲取字串,遍歷每個元素並計算字串中所有 1 的個數。例如,如果我們輸入 17,輸出將為 2,因為 17 的二進位制為 10001,其中包含兩個 1。
Input: Enter a positive integer: 6 Output: 2
解釋
6 的二進位制表示為 110,它有兩個設定的位。
這種迭代方法每個位需要一次迭代。它遍歷數字的所有位。當不再設定位時,迭代終止。在最壞的情況下,在一個只有最高有效位設定的 32 位字上,它將迴圈 32 次迭代。此解決方案是最簡單的解決方案,如果 1 稀疏且位於最低有效位中,則很有用。
示例
#include <stdio.h>
int main(void) {
unsigned int n = 34;
for (c = 0; n; n >>= 1) {
c += n & 1;
}
printf("%d\n", c);
}
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP