Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में XOR ऑपरेटर का उपयोग किए बिना दो नंबरों का XOR ज्ञात करें

इस समस्या में, हमें पूर्णांक मान A और B दिए जाते हैं। हमारा कार्य XOR ऑपरेटर का उपयोग किए बिना दो संख्याओं का XOR खोजना है। ।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

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

समाधान दृष्टिकोण

समस्या को हल करने का एक तरीका है संख्याओं को उनके संबंधित बाइनरी नंबरों में परिवर्तित करना और फिर इस तालिका के आधार पर बिटवाइज़ संचालन करना।

<टेबल><थेड>ए <वें>बी आउटपुट 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++ में रिकर्सन या यूक्लिडियन एल्गोरिथम का उपयोग किए बिना दो संख्याओं का HCF ज्ञात कीजिए

    जैसा कि हम जानते हैं, यूक्लिडियन एल्गोरिथम का उपयोग करके एचसीएफ या जीसीडी की गणना आसानी से की जा सकती है। लेकिन यहां हम देखेंगे कि यूक्लिडियन एल्गोरिथम, या किसी पुनरावर्ती एल्गोरिथम का उपयोग किए बिना जीसीडी या एचसीएफ कैसे उत्पन्न करें। मान लीजिए कि दो संख्याएँ 16 और 24 के रूप में मौजूद हैं। इन दोनों

  1. '-' ऑपरेटर का उपयोग करके दो संख्याओं का जोड़?

    C++ में ऑपरेटर ओवरलोडिंग एक महत्वपूर्ण अवधारणा है। यह एक प्रकार का बहुरूपता है जिसमें एक ऑपरेटर को उपयोगकर्ता-परिभाषित अर्थ देने के लिए अतिभारित किया जाता है। ओवरलोडेड ऑपरेटर का उपयोग उपयोगकर्ता द्वारा परिभाषित डेटा प्रकार पर ऑपरेशन करने के लिए किया जाता है। उदाहरण के लिए, + ऑपरेटर को विभिन्न डेटा प

  1. सी प्रोग्राम किसी भी ऑपरेटर का उपयोग किए बिना दो संख्याओं का योग खोजने के लिए

    इस खंड में हम देखेंगे कि हमारे प्रोग्राम में किसी भी प्रकार के ऑपरेटर का उपयोग किए बिना दो नंबरों के योग को कैसे प्रिंट किया जाए। यह समस्या विकट है। इस समस्या को हल करने के लिए हम प्रिंटफ () स्टेटमेंट के न्यूनतम चौड़ाई वाले क्षेत्र का उपयोग कर रहे हैं। उदाहरण के लिए यदि हम प्रिंटफ () का उपयोग करके