Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में बिटवाइज़ ऑपरेटर का उपयोग करके नंबर स्वैप करना


समस्या

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

  1. - C प्रोग्राम: किसी ऑपरेटर का उपयोग किए बिना दो संख्याओं का योग ज्ञात करना

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

  1. - C++ प्रोग्राम: कॉल बाय रेफरेंस का उपयोग करके संख्याओं को चक्रीय क्रम में स्वैप करना

    तीन संख्याओं को चक्रीय क्रम में स्वैप किया जा सकता है, उन्हें cyclicSwapping() फ़ंक्शन में कॉल बाय रेफरेंस का उपयोग करके पास करके। यह फ़ंक्शन संख्याओं को चक्रीय तरीके से स्वैप करता है। उदाहरण z; cout << चक्रीय स्वैपिंग से पहले संख्या मान... << endl; cout << x = <<

  1. - C# में अस्थायी वेरिएबल के बिना दो नंबरों को स्वैप करें

    दो नंबरों को स्वैप करने के लिए, थर्ड वेरिएबल का उपयोग करें और अस्थायी वेरिएबल के बिना अंकगणितीय ऑपरेटर का उपयोग करके स्वैप करें।स्वैपिंग के लिए दो वेरिएबल सेट करें:val1 = 5; val2 = 10;अब स्वैप के लिए निम्नलिखित ऑपरेशन करें:val1 = val1 + val2; val2 = val1 - val2; val1 = val1 - val2;उदाहरणusing System