इस समस्या में, हमें दो पूर्णांक मान दिए गए हैं। हमारा कार्य एक C++ प्रोग्राम बनाना है जो यह ऑपरेशन करे: किसी संख्या के प्रत्येक सेट बिट के लिए दूसरी संख्या के बिट्स को टॉगल करें।
समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट: 3 7 आउटपुट: 4 3 का बाइनरी: 011 7 का बाइनरी: 111
दूसरी संख्या के पहले और दूसरे बिट्स फ्लिप हो जाते हैं जिससे यह 100 यानी 4 बन जाता है।
समाधान दृष्टिकोण
इस समस्या को हल करने का एक दृष्टिकोण दोनों संख्याओं पर XOR ऑपरेशन करना है। परिणाम उन बिट्स के लिए टॉगल हो जाएगा जहां पहली संख्या के बिट्स 1 हैं, XOR ऑपरेशन का उपयोग करके।
उदाहरण
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
#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