C भाषा XOR अपरेसनको पूर्ण मार्गदर्शन | आधारभूतदेखि अनुप्रयोगसम्म

1. परिचय

सी भाषामा बिट अपरेसनको सारांश

सी भाषाले मेमोरी र प्रोसेसरलाई प्रभावकारी रूपमा ह्यान्डल गर्न बिट अपरेसन प्रदान गर्दछ। त्यस मध्ये विशेष गरी महत्त्वपूर्ण कुरा “XOR(एक्सक्लुसिभ OR)” हो। बिट अपरेसन सामान्यतया डेटा इन्क्रिप्शन, डेटा भेरिफिकेशन, संख्यात्मक अपरेसन आदि विभिन्न परिस्थितिहरूमा प्रयोग गरिन्छ। XOR ले दुई बिटहरू फरक भएमा “1” र समान भएमा “0” फिर्ता गर्ने विशेषता राख्छ, र सरल तथा शक्तिशाली अपरेसनको रूपमा चिनिन्छ।

यस लेखमा, सी भाषामा XOR अपरेसनको आधारदेखि प्रयोगसम्म क्रमशः व्याख्या गरिनेछ। वास्तविक कोड उदाहरणहरू समावेश गरेर, शुरुआतीहरूलाई पनि बुझ्न सजिलो बनाइनेछ।

2. XOR अपरेटरको मूलभूत

XOR भनेको के हो?

XOR (एक्सक्लुसिभ OR) ले प्रत्येक बिटमा दुईवटा संख्याहरूको तुलना गर्दछ, र यदि ती बिटहरू फरक छन् भने «1» फर्काउँछ, यदि समान छन् भने «0» फर्काउँछ। उदाहरणका लागि, निम्नानुसार संख्याहरू ५ र ९ को बिट-द्वारा-बिट तुलना गर्दा, XOR सञ्चालनको परिणाम प्राप्त हुन्छ।

  • 5 को द्विआधारी: 0101
  • 9 को द्विआधारी: 1001

यो बिटलाई XOR अपरेसनले तुलना गर्दा तल देखाइएका अनुसार हुन्छ।

बिट स्थिति5 (0101)9 (1001)XOR परिणाम
1011
2101
3000
4110

परिणाम हो 1100, जुन दशमलवमा “12” हो। XOR अपरेसनको यो मूलभूत कार्यविधि बुझेर, थप जटिल बिट अपरेसनहरूमा पनि प्रयोग गर्न सकिन्छ।

侍エンジニア塾

3. नमुना कोड मार्फत XOR बुझ्ने

XOR को आधारभूत प्रयोग उदाहरण

C भाषामा XOR अपरेसन चलाउने सरल उदाहरण तल देखाइएको छ। यो कोडले संख्या 5 र 9 मा XOR अपरेसन गरी, परिणाम देखाउँछ।

#include <stdio.h>

int main() {
    int a = 5;
    int b = 9;
    int result = a ^ b;

    printf("5 XOR 9 = %dn", result);  // परिणाम 12 हो
    return 0;
}

यो कोडले, संख्या ab को बिट-वाइज XOR गणना गरी, परिणामलाई result मा सङ्ग्रहित गर्छ। चलाउँदा, 「5 XOR 9 = 12」 देखाइन्छ। बिट-वाइज अपरेसनलाई दृश्यात्मक रूपमा बुझ्नको लागि राम्रो उदाहरण हो।

4. XOR को अनुप्रयोग उदाहरण

XOR प्रयोग गरेर चलको मानको अदला-बदली

XOR को अनौठो विशेषता प्रयोग गरेर, दुई चलको मानलाई अस्थायी चल बिना साटासाट गर्न सकिन्छ। तलको कोडले XOR प्रयोग गरेर दुई चल ab को मानलाई साटासाट गर्ने तरिका देखाउँछ।

#include <stdio.h>

int main() {
    int a = 5;
    int b = 7;

    printf("Before swap: a = %d, b = %dn", a, b);

    a = a ^ b;
    b = a ^ b;
    a = a ^ b;

    printf("After swap: a = %d, b = %dn", a, b);
    return 0;
}

यो कोडमा, XOR लाई ३ पटक प्रयोग गरेर, ab को मानलाई प्रभावकारी रूपमा साटासाट गरिन्छ। यसले अस्थायी चल बिना मानलाई बदल्न सकिन्छ, जसले स्मृति बचतमा सहयोग पुर्याउँछ।

5. व्यावहारिक उदाहरणहरू र प्रयोग क्षेत्रहरू

एरेभित्र दोहोरिने अंकहरू वा विषम पटक देखा पर्ने अंकहरूको पहिचान

XOR ले, एरेभित्र दोहोरिने तत्वहरू वा विषम पटक देखा पर्ने तत्वहरूलाई प्रभावकारी रूपमा पहिचान गर्न सक्छ। तल, दोहोरिएका तत्वहरूलाई पहिचान गर्ने उदाहरण र विषम पटक देखा पर्ने तत्वहरूलाई फेला पार्ने कोड देखाइएको छ।

दोहरिएको अंकको खोजी

#include <stdio.h>

int findDuplicate(int nums[], int size) {
    int duplicate = 0;
    for (int i = 0; i < size; i++) {
        duplicate ^= nums[i];
    }
    return duplicate;
}

int main() {
    int nums[] = {1, 2, 3, 2, 4};
    int size = sizeof(nums) / sizeof(nums[0]);

    printf("Duplicate number is: %dn", findDuplicate(nums, size));
    return 0;
}

यो कोडमा, XOR प्रयोग गरेर एरेभित्र दोहोरिएका संख्याहरूलाई पहिचान गरिन्छ। XOR को विशेषता प्रयोग गरेर, एउटै संख्या दुई पटक XOR गर्दा 0 हुन्छ, र दोहोरिएका संख्याहरू मात्र परिणाममा बाँकी रहन्छ।

विषम पटक देखा पर्ने अंकको पहिचान

#include <stdio.h>

int findOddOccurrence(int nums[], int size) {
    int result = 0;
    for (int i = 0; i < size; i++) {
        result ^= nums[i];
    }
    return result;
}

int main() {
    int nums[] = {5, 3, 9, 3, 5, 9, 7};
    int size = sizeof(nums) / sizeof(nums[0]);

    printf("Odd occurring number is: %dn", findOddOccurrence(nums, size));
    return 0;
}

यो कोडमा, विषम पटक देखा पर्ने अंकहरू मात्र अन्तिममा XOR को परिणाममा बाँकी रहन्छन्, जसले सजिलै पहिचान गर्न सकिन्छ।

डेटा इन्क्रिप्शनमा XOR को प्रयोग

XOR डेटा इन्क्रिप्शनमा पनि प्रयोग हुन्छ। तलको कोडमा, XOR प्रयोग गरेर सरल इन्क्रिप्शन र डिक्रिप्शनको उदाहरण देखाइएको छ।

#include <stdio.h>

void encryptDecrypt(char data[], char key) {
    for (int i = 0; data[i] != '\0'; i++) {
        data[i] = data[i] ^ key;
    }
}

int main() {
    char data[] = "Hello World";
    char key = 'K';

    printf("Original: %sn", data);
    encryptDecrypt(data, key);
    printf("Encrypted: %sn", data);
    encryptDecrypt(data, key);
    printf("Decrypted: %sn", data);

    return 0;
}

यो कोडमा, डेटामा XOR अपरेसन लागू गरेर इन्क्रिप्शन र डिक्रिप्शन गरिन्छ। XOR पुन: लागू गर्दा मूल डेटा फिर्ता आउँछ, त्यसैले यो सरल इन्क्रिप्शन प्रविधिको रूपमा प्रयोग हुन्छ।

6. सारांश

यो लेखमा, C भाषा मा XOR अपरेसनको आधारभूत प्रयोगबाट लागू उदाहरणहरू सम्म व्याख्या गरिएको छ। XOR डेटा इन्क्रिप्शन, त्रुटि जाँच, प्रोग्राम अनुकूलन, ह्यास फङ्क्शन डिजाइन आदि जस्ता विभिन्न क्षेत्रहरूमा प्रयोग गरिन्छ। विशेष गरी यसको उच्च गति र कार्यक्षमताले ठूलो डेटा प्रशोधन र प्रदर्शन आवश्यक पर्ने परिस्थितिहरूमा महत्वपूर्ण भूमिका खेल्छ।

यो लेख मार्फत, XOR अपरेसन कति शक्तिशाली उपकरण हो भन्ने बुझ्न, र भविष्यको प्रोग्रामिङमा उपयोगी बनाउनुहोस् भन्ने आशा गर्दछौं।