在 C++ 中查詢大型二進位制數中 1 的個數
給定一個 32 位無符號二進位制數,任務是計算設定的位數,即其中存在的“1”。
例如
輸入
N = 00000000000000100111
輸出
4
說明:給定無符號數中存在的總設定位數為 4,因此我們將輸出設定為“4”。
解決此問題的方法
我們給定一個 32 位無符號二進位制數。任務是計算其中存在多少個“1”。
要計算給定二進位制數中存在的“1”的數量,我們可以使用內建 STL 函式“__builtin_popcount(n)”,該函式將二進位制數作為輸入引數。
- 將二進位制數 N 作為輸入。
- 函式 count1Bit(uint32_t n) 將 32 位二進位制數作為輸入,並返回二進位制數中存在的“1”的計數。
- 內建函式 __builtin_popcount(n) 將“n”作為引數輸入,並返回計數。
示例
#include<bits/stdc++.h> using namespace std; int count1bits(uint32_t n) { return bitset < 32 > (n).count(); } int main() { uint32_t N = 0000000010100000011; cout << count1bits(N) << endl; return 0; }
執行以上程式碼將生成以下輸出:
輸出
4
在給定的數字中,其中存在 4 個設定位或“1”。因此,輸出為“4”。
廣告