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

একটি সংখ্যার প্রতিটি সেট বিটের জন্য অন্য সংখ্যার বিটগুলি টগল করা (C++)


সমস্যা বিবরণ

এই সমস্যায় দুটি পূর্ণসংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল একটি C++ প্রোগ্রাম তৈরি করা যা এই অপারেশনটি সম্পাদন করবে: একটি সংখ্যার প্রতিটি সেট বিটের জন্য অন্য সংখ্যার বিটগুলি টগল করা।

উদাহরণ

ইনপুট: 3 7
আউটপুট: 4
3-এর বাইনারি: 011
7-এর বাইনারি: 111

দ্বিতীয় সংখ্যার প্রথম এবং দ্বিতীয় বিট ফ্লিপ হয়ে 100 হয়ে যায়, যা দশমিক 4।

সমাধানের পদ্ধতি

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল দুটি সংখ্যার XOR অপারেশন করা। XOR অপারেশনের ফলাফল হবে যেসব বইটে প্রথম সংখ্যার বইট 1 আছে, তেসব বইট দ্বিতীয় সংখ্যায় টগল হবে।

প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a = 3, b = 7;
    cout << "দুটি সংখ্যা: " << a << " & " << b << endl;
    cout << "বিট ফ্লিপ করার ফলাফল: " << (a ^ b);
    return 0;
}

আউটপুট

দুটি সংখ্যা: 3 & 7
বিট ফ্লিপ করার ফলাফল: 4
  1. C++ প্রোগ্রাম: সংখ্যার সেট ও আনসেট বিটের সংখ্যা সমান কিনা চেক

  2. C++-এ সেট বিট কাউন্ট অনুযায়ী অ্যারে সর্ট করা

  3. C++-এ k সেট বিটস সহ একটি নম্বরকে ম্যাক্সিমাইজ করতে ন্যূনতম ফ্লিপ বের করা

  4. C/C++-এ বিট সেট, ক্লিয়ার, টগল করা (Set, Clear, Toggle a Bit)