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

XOR অপারেটর ছাড়া দুটি সংখ্যার XOR বের করা (C++)


সমস্যা বিবরণ

এই সমস্যায় দুটি পূর্ণসংখ্যা A এবং B দেওয়া হয়েছে। আমাদের কাজ হল XOR অপারেটর ব্যবহার না করে দুটি সংখ্যার XOR বের করা।

উদাহরণ

ইনপুট: A = 4, B = 5
আউটপুট: 1

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

এই সমস্যা সমাধানের একটি পদ্ধতি হল সংখ্যাগুলিকে বাইনরিতে রূপান্তর করে তারপর বিটওয়াইজ অপারেশন করা। নিচে XOR-এর সত্য তালিকা দেওয়া হলো:

ABআউটপুট
000
011
101
110

বিটওয়াইজ অপারেশন ব্যবহার করে এই লজিক বাস্তবায়ন করা যায়।

পদ্ধতি ১: লুপ ও বিটওয়াইজ অপারেশন

#include <iostream>
using namespace std;

int calcXORwoOperator(int a, int b) {
    int xorVal = 0;
    for (int i = 31; i >= 0; i--) {
        bool val1 = a & (1 << i);
        bool val2 = b & (1 << i);
        bool xorBit = (val1 & val2) ? 0 : (val1 | val2);
        xorVal <<= 1;
        xorVal |= xorBit;
    }
    return xorVal;
}

int main() {
    int a = 4, b = 5;
    cout << "সংখ্যাগুলির XOR: " << calcXORwoOperator(a, b);
    return 0;
}

আউটপুট

সংখ্যাগুলির XOR: 1

পদ্ধতি ২: গাণিতিক ফর্মুলা (a | b) - (a & b)

এক্সপ্রেশন (a | b) - (a & b) একই a ^ b। এটি ব্যবহার করে সহজে XOR বের করা যায়।

#include <iostream>
#include <bitset>
using namespace std;

int calcXORwoOperator(int a, int b) {
    return (a | b) - (a & b);
}

int main() {
    int a = 4, b = 5;
    cout << "দুই সংখ্যার XOR: " << bitset<8>(calcXORwoOperator(a, b));
    return 0;
}

আউটপুট

দুই সংখ্যার XOR: 00000001
  1. C++ ব্যবহার করে অ্যারেতে XOR ০ হয় এমন জোড়ার সংখ্যা বের করা

  2. C++-এ রিকারশন বা ইউক্লিডিয়ান অ্যালগরিদম ছাড়া দুই সংখ্যার HCF বের করা

  3. C++-এ '-' অপারেটর ব্যবহার করে দুটি সংখ্যা যোগ (Operator Overloading)

  4. সি প্রোগ্রাম: কোনো অপারেটর ছাড়া দুটি সংখ্যার যোগফল বের করা