首頁 >後端開發 >C++ >C/C++程式:計算一個整數中設定的位數?

C/C++程式:計算一個整數中設定的位數?

王林
王林轉載
2023-08-26 18:57:121259瀏覽

C/C++程式:計算一個整數中設定的位數?

對設定的位元進行計數意味著對給定整數進行 1 的計數。為此,我們有多種可以應用的解決方案。對於這種情況,我們有一個二進制數(整數的二進位表示),為此我們必須計算字串中 1 的數量。

要計算 1 的數量,我們將取得字串,遍歷每個元素並統計字串中所有1的個數。例如,如果我們輸入 17,則輸出將為 2,因為 17 的二進位為 10001,其中包含兩個 1。

Input: Enter a positive integer: 6
Output: 2

說明

6 的二進位表示形式是 110,它有 2 個設定位元

這種迭代方法需要每位迭代一次。它貫穿數字的所有位。當不再設定任何位元時,迭代終止。在最壞的情況下,對於僅設定最高有效位元的 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);
}
#

以上是C/C++程式:計算一個整數中設定的位數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除