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

XOR का उपयोग करके किसी दिए गए स्ट्रिंग के लिए 2 की तारीफ?

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

हम LSb से स्ट्रिंग को पार करेंगे, और 0 की तलाश करेंगे। हम सभी 1 को 0 पर तब तक फ़्लिप करेंगे जब तक हमें 0 नहीं मिल जाता। फिर पाए गए 0 को फ़्लिप करें।

हम एलएसबी से आगे बढ़ेंगे। फिर 1 प्राप्त करने तक सभी 0 को अनदेखा करते हुए। पहले 1 को अनदेखा करते हुए, हम XOR ऑपरेशन का उपयोग करके सभी बिट्स को टॉगल करेंगे।

एल्गोरिदम

get2sComp(bin)

begin
   len := length of the binary string
   flag := false
   for i := len-1 down to 0, do
      if bin[i] is 0, and flag is not set, then
         ignore the next part, jump to next iteration
      else
         if flag is set, then
            bin[i] := flip of bin[i]
         end if
         flag := true
      end if
   done
   if the flag is not set, then
      attach 1 with bin and return
   else
      return bin
   end if
end

उदाहरण

#include <iostream>
using namespace std;
string get2sComplement(string bin) {
   int n = bin.length();
   bool flag = false; //flag is used if 1 is seen
   for (int i = n - 1; i >= 0; i--) { //traverse from last bit
      if (bin[i] == '0' && !flag) {
         continue;
      } else {
         if (flag)
            bin[i] = (bin[i] - '0') ^ 1 + '0'; //flip bit using XOR, then convert to ASCII
         flag = true;
      }
   }
   if (!flag) //if no 1 is there, just insert 1
      return "1" + bin;
   else
      return bin;
}
int main() {
   string str;
   cout << "Enter a binary string: ";
   cin >> str;
   cout << "2's complement of " << str <<" is " << get2sComplement(str);
}

आउटपुट

Enter a binary string: 10110110
2's complement of 10110110 is 01001010

  1. पायथन रेगेक्स का उपयोग करके किसी दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

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

  1. पायथन में इनबिल्ट फ़ंक्शन का उपयोग करके दिए गए स्ट्रिंग का क्रमपरिवर्तन

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

  1. जब तक किसी दिए गए स्ट्रिंग को पायथन का उपयोग करके उत्पन्न नहीं किया जाता है, तब तक यादृच्छिक तार उत्पन्न करना

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