কম্পিউটার

C++ এ XOR অপারেটর ব্যবহার না করে দুটি সংখ্যার XOR খুঁজুন


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

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input : A = 4, B = 5
Output : 1

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

সমস্যা সমাধানের একটি পদ্ধতি হল সংখ্যাগুলিকে তাদের নিজ নিজ বাইনারি সংখ্যায় রূপান্তর করা এবং তারপর এই টেবিলের উপর ভিত্তি করে বিটওয়াইজ অপারেশন করা৷

A B আউটপুট
0 0 0
0 1 1
1 0 1
1 1 0

এটি ফলাফল ফিরিয়ে দেবে। এর জন্য আমরা বিটওয়াইজ অপারেশন ব্যবহার করব।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#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 of the numbers is "<<calcXORwoOperator(a, b);
   return 0;
}

আউটপুট

XOR of the numbers is 1

বিকল্প পদ্ধতি

xor খুঁজে বের করার আরেকটি পদ্ধতি হল উভয় সংখ্যায় উপস্থিত বিটগুলির মধ্যে এক এক করে তুলনা করা এবং তাদের উপর XOR এর সমতুল্য ক্রিয়াকলাপ সম্পাদন করা।

অভিব্যক্তি (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;
   int b = 5;
   cout<<"The XOR of both numbers is "<<(bitset<8>(calcXORwoOperator(a, b)));
   return 0;
}

আউটপুট

The XOR of both numbers is 00000001

  1. C++ ব্যবহার করে একটি অ্যারেতে জোড়ার সংখ্যা খুঁজুন যাতে তাদের XOR 0 হয়।

  2. C++ এ পুনরাবৃত্তি বা ইউক্লিডীয় অ্যালগরিদম ব্যবহার না করে দুটি সংখ্যার HCF খুঁজুন

  3. '-' অপারেটর ব্যবহার করে দুটি সংখ্যার সংযোজন?

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