用 C++ 計算給定數字二進位制表示形式前導零的數量
給定一個數字,我們必須找出其二進位制表示形式中的前導零數量。假設總位數為 32 位。我們來看一個示例。
輸入
5
輸出
25
5 的二進位制表示形式為 00000...00101。前導零的數量為 29。
演算法
- 初始化數字 n。
- 找到 n 的二進位制表示形式。
- 從總位數減去 n 的二進位制表示形式的長度,即 32。
- 返回結果。
實現
以下是上述演算法在 C++ 中的實現
#include <bits/stdc++.h> using namespace std; int getLeadingZeroesCount(unsigned int n) { int totalBits = sizeof(n) * 8; string binary = ""; while (n) { int remainder = n % 2; if (remainder || binary.length() > 0) { binary += remainder; } n /= 2; } return totalBits - binary.length(); } int main() { int n = 101; cout << getLeadingZeroesCount(n) << endl; return 0; }
輸出
如果您執行上述程式碼,您將獲得以下結果。
25
廣告