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