Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm tổng số bit trong một số trong C ++


Chúng ta được cung cấp một số nguyên, giả sử là num và nhiệm vụ trước tiên là tính chữ số nhị phân của một số và tính tổng các chữ số của một số.

Đầu vào - số int =50

Đầu ra - Đếm tổng số bit trong một số là - 6

Giải thích - Biểu diễn nhị phân của một số 50 là 110010 và nếu chúng ta tính nó ở dạng số có 8 chữ số thì hai số 0 sẽ được thêm vào ở đầu. Vì vậy, tổng số bit trong một số là 6.

Đầu vào - int number =10

Đầu ra - Đếm tổng số bit trong một số là - 6

Giải thích - Biểu diễn nhị phân của số 10 là 00001010 và nếu chúng ta tính nó ở dạng số 8 chữ số thì bốn chữ số 0 sẽ được thêm vào ở đầu. Vì vậy, tổng số bit trong một số là 4.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập số vào một biến kiểu số nguyên

  • Khai báo một biến đếm để lưu trữ tổng số bit của kiểu unsigned int

  • Bắt đầu vòng lặp FOR từ i đến 1 <<7 và i> 0 và i đến i / 2

  • Bên trong vòng lặp, kiểm tra num &1 ==TRUE sau đó in 1 khác in 0

  • Bắt đầu lặp trong khi để tính tổng số bit cho đến khi số không phải là 0

  • Bên trong vòng lặp, tăng giá trị của số đếm lên 1 và đặt số>> =1

  • In số lượng

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

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