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

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


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

इनपुट-1 -

N = 25, बिट = 1, पोजीशन = 2

आउटपुट -

29

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

इस प्रॉब्लम को हल करने का दृष्टिकोण

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

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

  • एक वॉइड फंक्शन updateBit(int &n, int bit, int position) करंट बिट का एड्रेस, बिट वैल्यू और बिट का इंडेक्स लेता है। फंक्शन दिए गए बिट से बदलकर संख्या का अपडेटेड मान प्रिंट करेगा।

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

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

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

उदाहरण

#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. - C++ में BIT का उपयोग करके रंगीन ट्री के सबट्री में अलग-अलग रंगों की संख्या क्वेरी करना

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

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

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

  1. - C++ में सरणी में एक संख्या की फ्रीक्वेंसी ज्ञात करना

    मान लीजिए हमारे पास एक सरणी है। इसमें n अलग-अलग तत्व हैं। हमें सरणी में एक तत्व की फ्रीक्वेंसी जांचनी है। मान लीजिए A = [5, 12, 26, 5, 3, 4, 15, 5, 8, 4], यदि हम 5 की फ्रीक्वेंसी ढूंढने की कोशिश करते हैं, तो यह 3 होगी। इसे हल करने के लिए, हम सरणी को बाएं से स्कैन करेंगे, यदि तत्व दी गई संख्या के सम