C++ 中計算數字的總位元數


給定一個整數,例如 num,任務是首先計算該數字的二進位制數字,然後計算該數字的總位數。

輸入 − int number = 50

輸出 − 數字中總位元數為 - 6

解釋 − 數字 50 的二進位制表示為 110010,如果我們將其計算為 8 位數字,則會在開頭新增兩個 0。因此,數字中的總位元數為 6。

輸入 − int number = 10

輸出 − 數字中總位元數為 - 6

解釋 − 數字 10 的二進位制表示為 00001010,如果我們將其計算為 8 位數字,則會在開頭新增四個 0。因此,數字中的總位元數為 4。

下面程式中使用的方案如下

  • 將數字輸入到整數型別的變數中

  • 宣告一個名為 count 的變數,用於儲存無符號整數型別的總位元數

  • 從 i 到 1<<7 以及 i > 0 和 i 到 i / 2 開始迴圈 FOR

  • 在迴圈內,檢查 num & 1 == TRUE 則列印 1,否則列印 0

  • 啟動 while 迴圈以計算總位元數,直到數字不為 0 為止

  • 在迴圈內,將 count 的值加 1 並設定 number >>=1

  • 列印計數

示例

 線上演示

#include
using namespace std;
//Count total bits in a number
unsigned int bits(unsigned int number){
   unsigned int count = 0;
   unsigned i;
   //display the total 8-bit number
   cout<<"8-bit digits of "<<number<<" is: ";
   for (i = 1 << 7; i > 0; i = i / 2){
      (number & i)? cout<<"1": cout<<"0";
   }
   //calculate the total bits in a number
   while (number){
      count++;
      number >>= 1;
   }
   cout<<"\nCount of total bits in a number are: "<<count;
}
int main(){
   int number = 50;
   bits(number);
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

8-bit digits of 50 is: 00110010
Count of total bits in a number are: 6

更新於: 2020-08-31

5K+ 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告