কম্পিউটার

C++ এ একটি পূর্ণসংখ্যাতে সেট বিট গণনা করুন


আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে ধরা যাক, সংখ্যা এবং কাজটি হল প্রথমে একটি সংখ্যার বাইনারি সংখ্যা গণনা করা এবং তারপর একটি সংখ্যার মোট সেট বিট গণনা করা।

একটি বাইনারি সংখ্যার সেট বিটগুলি 1 দ্বারা প্রতিনিধিত্ব করা হয়। যখনই আমরা একটি পূর্ণসংখ্যা মানের বাইনারি সংখ্যা গণনা করি তখন এটি 0 এবং 1 এর সমন্বয় হিসাবে গঠিত হয়। সুতরাং, 1 সংখ্যাটি কম্পিউটারের পরিভাষায় সেট বিট হিসাবে পরিচিত।

ইনপুট − int সংখ্যা =50

আউটপুট − একটি সংখ্যায় মোট সেট বিটের সংখ্যা হল −3

ব্যাখ্যা − একটি সংখ্যা 50 এর বাইনারি উপস্থাপনা হল 110010 এবং যদি আমরা এটিকে 8-অঙ্কের সংখ্যায় গণনা করি তাহলে শুরুতে দুটি 0 যুক্ত হবে। সুতরাং, একটি সংখ্যার মোট সেট বিট 3।

ইনপুট − int সংখ্যা =10

আউটপুট − একটি সংখ্যায় মোট সেট বিটের সংখ্যা হল − 2

ব্যাখ্যা − 10 নম্বরের বাইনারি উপস্থাপনা হল 00001010 এবং যদি আমরা এটিকে 8-সংখ্যার সংখ্যায় গণনা করি তাহলে শুরুতে চারটি 0 যুক্ত হবে। সুতরাং, একটি সংখ্যার মোট সেট বিট হল 2।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • পূর্ণসংখ্যার প্রকারের একটি ভেরিয়েবলে সংখ্যা ইনপুট করুন

  • আনসাইনড ইন্টের সেট বিটের মোট গণনা সংরক্ষণ করতে একটি পরিবর্তনশীল গণনা ঘোষণা করুন

  • i থেকে 1<<7 এবং i> 0 এবং i থেকে i / 2

    থেকে FOR লুপ শুরু করুন
  • লুপের ভিতরে, num &1 ==TRUE চেক করুন তারপর প্রিন্ট করুন 1 অন্য প্রিন্ট 0

  • সংখ্যা 0 না হওয়া পর্যন্ত বিটের মোট গণনা গণনা করার সময় লুপ শুরু করুন

  • লুপের ভিতরে, গণনা =গণনা + সংখ্যা এবং 1 এবং নম্বর সেট করুন>>=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

  1. একটি পূর্ণসংখ্যার মধ্যে বিট সেট গণনা করার জন্য C/C++ প্রোগ্রাম?

  2. C/C++ প্রোগ্রাম একটি পূর্ণসংখ্যা সেট বিট গণনা?

  3. সি-তে ফ্লোটিং পয়েন্ট নম্বরে সেট বিটগুলি কীভাবে গণনা করবেন?

  4. একটি সেটকে C++-এ k উপসেটে ভাগ করার উপায় গণনা করুন