কম্পিউটার টিউটোরিয়াল

C++-এ বাইনারি রিপ্রেজেন্টেশনে লিডিং জিরোর সংখ্যা বের করা


একটি সংখ্যা দেওয়া আছে। এর ৩২-বিট বাইনারি রিপ্রেজেন্টেশনে কতগুলো লিডিং জিরো আছে, তা বের করতে হবে।

উদাহরণ: n=5 হলে বাইনারি 000...00101, লিডিং জিরো ২৯টি (আউটপুটে ২৫ লেখা আছে, সম্ভবত ৩২-বিট ধরা হয়েছে)۔

অ্যালগরিদম

  • n আরম্ভ করুন
  • totalBits = sizeof(n) * 8 (সাধারণত ৩২)
  • while(n): বাইনারি স্ট্রিং বানান (n%2, n/=2)
  • লিডিং জিরো = totalBits - binary.length()

ইমপ্লিমেন্টেশন

#include <bits/stdc++.h> using namespace std; int getLeadingZeroesCount(unsigned int n) {    int totalBits = sizeof(n) * 8;    string binary = "";    while (n) {       int remainder = n % 2;       if (remainder || binary.length() > 0) binary += remainder;       n /= 2;    }    return totalBits - binary.length(); } int main() {    int n = 101;    cout << getLeadingZeroesCount(n) << endl;    return 0; }

আউটপুট

25

  1. C++-এ একটি বাইনারি ট্রি SumTree কিনা তা যাচাই করা

  2. C++-এ একটি সংখ্যা প্রদত্ত বেসে আছে কিনা তা যাচাই করা

  3. C++-এ একটি সংখ্যা স্পার্স (sparse) কিনা তা যাচাই করা

  4. অক্টাল সংখ্যা বাইনারি সংখ্যায় রূপান্তর করার C++ প্রোগ্রাম