समस्या
C प्रोग्रामिंग भाषा में बिटवाइज़ ऑपरेटर का उपयोग करके नंबरों को कैसे स्वैप करें?
समाधान
कंपाइलर दिए गए नंबरों को स्वैप करता है, पहले यह दिए गए दशमलव संख्या को बाइनरी समकक्ष में बदलता है फिर नंबरों को एक मेमोरी लोकेशन से दूसरे में एक्सचेंज करने के लिए बिटवाइज़ XOR ऑपरेशन करता है।
एल्गोरिदम
START
चरण 1: दो वेरिएबल a और b घोषित करें
चरण 1: कंसोल से दो नंबर दर्ज करें
चरण 2: बिटवाइज़ ऑपरेटर का उपयोग करके दो नंबर स्वैप करें
a = a ^ b
b = a ^ b
a = a ^ b
चरण 3: a और b के मान प्रिंट करें
STOP
प्रोग्राम
#include<stdio.h>
int main(){
int a, b;
printf("enter the values for a and b:");
scanf("%d%d", &a, &b);
printf("value of a=%d and b=%d before swap\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("value of a=%d and b=%d after swap", a, b);
return 0;
}
आउटपुट
enter the values for a and b: 24 56 value of a=24 and b=56 before swap value of a=56 and b=24 after swap Explanation: a = 24 binary equivalent of 24 = 011000 b = 56 binary equivalent of 56 = 111000 a = a ^ b = 100000 b = a ^ b = 100000 ^ 111000 = 011000 a = a ^ b = 100000 ^ 011000 = 111000 Now a = 111000 decimal equivalent = 56 b = 011000 decimal equivalent = 24