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

XOR का उपयोग करके बाइनरी स्ट्रिंग का 2's पूरक

इस खंड में हम देखेंगे कि बाइनरी स्ट्रिंग पर XOR ऑपरेशन का उपयोग करके 2's पूरक कैसे ज्ञात किया जा सकता है। 2's पूरक वास्तव में 1's पूरक + 1 होता है। हम 1's पूरक प्राप्त करने के लिए XOR ऑपरेशन का उपयोग करेंगे।

हम LSB से स्ट्रिंग को पार करेंगे और 0 ढूंढेंगे। हम सभी 1's को 0 में तब तक फ्लिप करेंगे जब तक हमें 0 नहीं मिल जाता। फिर मिले हुए 0 को फ्लिप करेंगे।

हम LSB से पार करेंगे। फिर सभी 0's को तब तक अनदेखा करेंगे जब तक हमें 1 नहीं मिल जाता। पहले 1 को अनदेखा करके, हम XOR ऑपरेशन का उपयोग करके सभी बिट्स को टॉगल करेंगे।

एल्गोरिदम

get2sComp(bin)

begin
    len := बाइनरी स्ट्रिंग की लंबाई
    flag := false
    for i := len-1 down to 0, do
        if bin[i] 0 है और flag सेट नहीं है, then
            अगले भाग को अनदेखा करें, अगले इटरेशन पर जाएं
        else
            if flag सेट है, then
                bin[i] := bin[i] का फ्लिप
            end if
            flag := true
        end if
    done
    यदि flag सेट नहीं है, then
        bin के साथ 1 जोड़ें और लौटाएं
    else
        bin लौटाएं
    end if
end

उदाहरण

#include <iostream>
using namespace std;

string get2sComplement(string bin) {
    int n = bin.length();
    bool flag = false; // flag का उपयोग तब किया जाता है जब 1 देखा जाता है
    for (int i = n - 1; i >= 0; i--) { // अंतिम बिट से पार करें
        if (bin[i] == '0' && !flag) {
            continue;
        } else {
            if (flag)
                bin[i] = (bin[i] - '0') ^ 1 + '0'; // XOR का उपयोग करके बिट फ्लिप करें, फिर ASCII में बदलें
            flag = true;
        }
    }
    if (!flag) // यदि कोई 1 नहीं है, तो बस 1 डालें
        return "1" + bin;
    else
        return bin;
}

int main() {
    string str;
    cout << "एक बाइनरी स्ट्रिंग दर्ज करें: ";
    cin >> str;
    cout << "2's complement of " << str << " is " << get2sComplement(str);
    return 0;
}

आउटपुट

एक बाइनरी स्ट्रिंग दर्ज करें: 10110110
2's complement of 10110110 is 01001010
  1. - Python Regex का उपयोग करके दी गई स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो regexes का उपयोग करके स्ट्रिंग में 1(0+1) की सभी घटनाओं को ढूंढता है। हमारे पास Python में एक re मॉड्यूल है जो नियमित अभिव्यक्ति के साथ काम करने में हमारी मदद करता है।आइए एक नमूना केस देखें।इनपुट: string = Sample 1(0+)1 string with 1(0+)1 unnecessary pat

  1. - Python में इनबिल्ट फ़ंक्शन का उपयोग करके दी गई स्ट्रिंग का परम्युटेशन

    इस ट्यूटोरियल में, हम Python के इनबिल्ट फ़ंक्शन permutations का उपयोग करके स्ट्रिंग का परम्युटेशन ढूंढने जा रहे हैं। permutations मेथड itertools मॉड्यूल में मौजूद है।स्ट्रिंग का परम्युटेशन खोजने की प्रक्रियाitertools मॉड्यूल आयात करें।स्ट्रिंग आरंभ करें।स्ट्रिंग का परम्युटेशन खोजने के लिए itertools.

  1. - पायथन का उपयोग करके दिए गए स्ट्रिंग के उत्पन्न होने तक रैंडम स्ट्रिंग्स जनरेट करना

    दिए गए एक स्ट्रिंग के लिए, हमारा कार्य वर्णों, विशेष वर्णों, संख्याओं आदि के रैंडम संयोजन का उपयोग करके कुछ स्ट्रिंग्स जनरेट करना है। उदाहरण इनपुट: PP आउटपुट: AK AK . . . . . एल्गोरिदम चरण 1: एक स्ट्रिंग इनपुट करें। चरण 2: यहां हम लोअरकेस, अपरकेस और विशेष वर्णों के सभी संभावित संयोजनों को एक वेरिए