কম্পিউটার

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


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

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

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

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

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

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

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

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

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

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

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

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

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

  • লুপের ভিতরে, একটি সংখ্যার মোট সংখ্যার মান বৃদ্ধি করুন।

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

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

  • একটি সংখ্যায় মোট সংখ্যা হিসাবে গণনা সেট করুন - একটি সংখ্যায় মোট সেট বিট।

  • গণনা প্রিন্ট করুন

উদাহরণ

#include<iostream>
using namespace std;
//Count total unset bits in a number
unsigned int unset_bits(unsigned int number){
   unsigned int total_digits = 0;
   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";
      total_digits++;
   }
   //calculate the total unset bits in a number
   while (number){
      count += number & 1;
      number >>= 1;
   }
   count = total_digits - count;
   cout<<"\nCount of total unset bits in a number are: "<<count;
}
int main(){
   int number = 50;
   unset_bits(number);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
8-bit digits of 50 is: 00110010
Count of total set bits in a number are: 5

  1. C++ এ n সেট এবং m আনসেট বিট সহ বৃহত্তম সংখ্যাটি খুঁজুন

  2. C++ এ সেট বিটের বিজোড় সংখ্যা সহ পূর্ণসংখ্যার সংখ্যা

  3. কিভাবে C++ ব্যবহার করে ওপেনসিভিতে ফ্রেমের মোট সংখ্যা গণনা করবেন?

  4. C++ এ একটি আয়তক্ষেত্রে বর্গক্ষেত্রের সংখ্যা গণনা করুন