C++ 中整數二進位制位計數
給定一個整數,例如 num,任務是首先計算該數字的二進位制數,然後計算該數字的總設定位數。
二進位制數中的設定位由 1 表示。當我們計算整數的二進位制數時,它由 0 和 1 的組合形成。因此,數字 1 在計算機術語中稱為設定位。
輸入 − int number = 50
輸出 − 數字中設定位的總數為 - 3
解釋 − 數字 50 的二進位制表示形式為 110010,如果我們將其計算為 8 位數字,則會在開頭追加兩個 0。因此,數字中設定位的總數為 3。
輸入 − int number = 10
輸出 − 數字中設定位的總數為 - 2
解釋 − 數字 10 的二進位制表示形式為 00001010,如果我們將其計算為 8 位數字,則會在開頭追加四個 0。因此,數字中設定位的總數為 2。
下面程式中使用的方法如下
將數字輸入到整數型別的變數中
宣告一個變數 count 用於儲存設定位的總數,型別為無符號整數
從 i 到 1<<7 和 i > 0 以及 i 到 i / 2 開始迴圈 FOR
在迴圈內部,檢查 num & 1 == TRUE 則列印 1,否則列印 0
啟動 while 迴圈以計算位的總數,直到數字不為 0
在迴圈內部,設定 count = count + number & 1,並設定 number >>=1
列印計數
示例
#include<iostream>
using namespace std;
//Count total set 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 set bits in a number
while (number){
count += number & 1;
number >>= 1;
}
cout<<"\nCount of total set 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 set bits in a number are: 3
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP