Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

बिट को दी गई स्थिति में अपडेट करें या C++ का उपयोग करके किसी संख्या की अनुक्रमणिका को अपडेट करें

दी गई समस्या में हमें किसी संख्या के दिए गए सूचकांक के बिट को अद्यतन करना होता है। नंबर को अपडेट करने के लिए, हम दिए गए नंबर पर बिट मैनिपुलेशन ऑपरेशन का उपयोग कर सकते हैं। उदाहरण के लिए,

इनपुट-1 -

N= 25
bit= 1
position= 2

आउटपुट -

29

स्पष्टीकरण - चूंकि दिए गए इनपुट 25 को बाइनरी में '11001' के रूप में लिखा जा सकता है जबकि स्थिति सूचकांक '2' है और बिट '1' है। दिए गए स्थान पर अंकों को बदलने के बाद आउटपुट '11101' होगा जो '29' के बराबर है।

इस समस्या को हल करने का तरीका

किसी संख्या की दी गई स्थिति या अनुक्रमणिका में, कार्य इनपुट में दिए गए विशेष बिट के साथ बिट को अद्यतन करना है। दिए गए स्थान पर बिट को अपडेट करने का तरीका पहले दिए गए स्थान पर बिट को साफ़ करना है और फिर बिट को अपडेट करने के लिए बाइनरी और ऑपरेशन करना है।

  • इनपुट एक नंबर एन लें, बिट को 'बिट' के रूप में अपडेट करने के लिए और स्थिति या इंडेक्स जिस पर हमें बिट को 'पोजिशन' के रूप में अपडेट करना है।

  • एक शून्य फ़ंक्शन अपडेटबिट (इंट एंड एन, इंट बिट, इंट पोजीशन) वर्तमान बिट, बिट वैल्यू और बिट के इंडेक्स का पता लेता है। फंक्शन बिट को दिए गए नंबर से बदल कर नंबर के अपडेटेड वैल्यू को प्रिंट करेगा।

  • दिए गए स्थान पर बिट साफ़ करें और परिणामी बिट को परिणाम में जोड़ें।

  • एक मास्क बनाएं और परिणाम के साथ AND ऑपरेशन करें।

  • हमारे द्वारा बनाए गए मास्क के साथ बाइनरी या ऑपरेशन करें और इंडेक्स में अपडेट किए जाने वाले मान के साथ सही शिफ्ट ऑपरेशन करें।

उदाहरण

#include<iostream>
using namespace std;
void updateBit(int &n,int bit, int pos){
   int clearBit= ~(1<<pos);
   int mask= n & clearBit;
   n= mask |(bit<<pos);
}
int main(){
   int n=25;
   int bit=1;
   int pos=2;
   updateBit(n,bit,pos);
   cout<<n;
}

आउटपुट

उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

29

चूंकि इनपुट 25 है जो बाइनरी प्रतिनिधित्व में 11001 है। '2' की स्थिति को '1' से बदलने के बाद, यह बाइनरी में 11101 हो जाएगा जो कि 29 है।


  1. सी ++ में बीआईटी का उपयोग करके रंगीन पेड़ के उपट्री में अलग-अलग रंगों की संख्या पूछताछ करना

    इस ट्यूटोरियल में, हम बीआईटी का उपयोग करके एक रंगीन पेड़ के एक उपट्री में अलग-अलग रंगों की संख्या को खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे। इसके लिए हमें रूटेड ट्री प्रदान किया जाएगा जहां प्रत्येक नोड में दिए गए सरणी द्वारा दर्शाया गया रंग होता है। हमारा काम पेड़ में दिए गए नोड के नीचे सभी अलग-

  1. C++ में किसी संख्या में K-वें सेट बिट की स्थिति

    इस समस्या में, हमें दो पूर्णांक N और K दिए गए हैं। हमारा कार्य Kth का सूचकांक ज्ञात करना है। संख्या N का थोड़ा सा सेट करें, दाईं ओर से गिना जाए। संख्या के द्विआधारी प्रतिनिधित्व से सेट बिट्स की जाँच की जाती है। बाइनरी प्रतिनिधित्व में इंडेक्सिंग इंडेक्स 0 से दाएं दिशा से शुरू होती है और बाईं ओर फैल

  1. C++ का उपयोग करके किसी सरणी में किसी संख्या की आवृत्ति ज्ञात करें।

    मान लीजिए कि हमारे पास एक सरणी है। एन विभिन्न तत्व हैं। हमें सरणी में एक तत्व की आवृत्ति की जांच करनी है। मान लीजिए A =[5, 12, 26, 5, 3, 4, 15, 5, 8, 4], अगर हम 5 की बारंबारता ज्ञात करने की कोशिश करते हैं, तो यह 3 होगा। इसे हल करने के लिए, हम सरणी को बाईं ओर से स्कैन करेंगे, यदि तत्व दिए गए नंबर के