কম্পিউটার

C++-এ Bitwise AND সংখ্যার পরিসর


ধরুন আমাদের একটি রেঞ্জ আছে [m, n] যেখানে 0 <=m <=n <=2147483647। আমাদের এই রেঞ্জের সমস্ত সংখ্যার বিটওয়াইজ AND খুঁজে বের করতে হবে, অন্তর্ভুক্ত। তাই পরিসীমা যদি [5, 7] হয়, তাহলে ফলাফল হবে 4।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • i :=0

  • যখন m n নয়, তারপর

    • m :=m/2, n :=n / 2, i 1 দ্বারা বাড়ান

  • i বার বাম দিকে সরানোর পরে m ফিরে আসুন।

উদাহরণ(C++)

আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int rangeBitwiseAnd(int m, int n) {
      int i = 0;
      while(m != n){
         m >>= 1;
         n >>= 1;
         i++;
      }
      return m << i;
   }
};
main(){
   Solution ob;
   cout << (ob.rangeBitwiseAnd(5,7));
}

ইনপুট

5
7

আউটপুট

4

  1. বিটওয়াইজ প্রিন্ট করুন এবং C++ এ একটি N সংখ্যা সেট করুন

  2. C++ এ প্রদত্ত পরিসর থেকে সর্বাধিক বিটওয়াইজ এবং জোড়া

  3. Bitwise এবং C++ এ কি?

  4. পাইথনে প্রদত্ত রেঞ্জে সংখ্যার বিটওয়াইজ এবং পরিসীমা খুঁজে বের করার প্রোগ্রাম