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

सी ++ में दिए गए एन में 1 जोड़ने के बाद बिट्स की संख्या बदल गई

हमें एक संख्या दी गई है मान लीजिए संख्या और कार्य संख्या में 1 जोड़े जाने पर बदले गए बिट्स की कुल संख्या की गणना करना है।

किसी संख्या का द्विआधारी निरूपण दी गई संख्या को 0 और 1 के रूप में परिवर्तित करके किया जाता है और यह विभिन्न विधियों द्वारा किया जाता है। एक विधि में, हम किसी दिए गए नंबर के एलसीएम की गणना 2 से करते हैं और यदि कोई रिमाइंडर 0 के अलावा अन्य है तो बिट को 1 पर सेट किया जाता है और इसे 0 पर सेट किया जाएगा।

बिट्स के लिए अतिरिक्त टेबल हैं

0 + 1 = 1
1 + 0 = 1
0 + 0 = 0
1 + 1 = 1 ( 1 bit carry)

उदाहरण के लिए

Input − num = 10
Output − count is : 1

स्पष्टीकरण - 10 का द्विआधारी प्रतिनिधित्व 1010 है और जब इसमें 1 जोड़ा जाता है तो प्रतिनिधित्व 1011 हो जाता है। स्पष्ट रूप से केवल एक बिट बदल गया है इसलिए गिनती 1 है।

Input − num = 5
Output − count is : 2

स्पष्टीकरण - 5 का बाइनरी प्रतिनिधित्व 101 है और जब इसमें 1 जोड़ा जाता है तो प्रतिनिधित्व 110 हो जाता है। स्पष्ट रूप से दो बिट्स बदल गए हैं इसलिए गिनती 2 है

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • पूर्णांक प्रकार की संख्या दर्ज करें, मान लें कि पूर्णांक संख्या

  • एक वैरिएबल घोषित करें जो काउंट को स्टोर करेगा, मान लीजिए, इंट काउंट

  • एक और चर लें मान लें कि अस्थायी है जो संख्या के XOR की गणना करेगा और इसे n ^ (n + 1)

    पर सेट करेगा।
  • काउंट वेरिएबल कॉल में __builtin_popcount(temp). यह फ़ंक्शन किसी दिए गए पूर्णांक बाइनरी प्रतिनिधित्व में संख्याओं की गणना की गणना करना है। यह GCC कंपाइलर का इनबिल्ट फंक्शन है।

  • गिनती वापस करें

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
using namespace std;
// Function to find number of changed bit
int changedbit(int n){
   int XOR = n ^ (n + 1);
   // Count set bits in xor value
   int count = __builtin_popcount(XOR);
   return count;
}
int main(){
   int n = 10;
   cout <<"count is: " <<changedbit(n);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -

count is: 1

  1. C++ में हेक्साडेसिमल संख्या गिनें

    हमें प्रारंभ और अंत वाली एक श्रेणी दी गई है और कार्य दिए गए श्रेणी में मौजूद हेक्साडेसिमल संख्याओं या वर्णों की गणना करना है। हेक्साडेसिमल अक्षर क्या हैं? कंप्यूटर के संदर्भ में, हेक्साडेसिमल संख्याएँ वे संख्याएँ होती हैं जिनका आधार 16 होता है, जिसका अर्थ है कि द्विआधारी अंक को 16-बिट में दर्शाया ज

  1. C++ में दी गई संख्या के सेट बिट्स का उपयोग करते हुए न्यूनतम संख्या

    समस्या कथन एक अहस्ताक्षरित संख्या को देखते हुए, दी गई अहस्ताक्षरित संख्या के बिट्स का उपयोग करके बनाई जा सकने वाली न्यूनतम संख्या ज्ञात कीजिए। उदाहरण यदि इनपुट =10 तो उत्तर 3 होगा 10 का बाइनरी प्रतिनिधित्व 1010 है और 2सेट बिट्स के साथ न्यूनतम संख्या 0011 है यानी 3 एल्गोरिदम 1. Count the number of

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

    यहां हम सेट-बिट्स के आधार पर एक सरणी को सॉर्ट करने के लिए एक दिलचस्प समस्या देखेंगे। जब सरणी में एक तत्व में सेट-बिट्स की संख्या अधिक होती है, तो उसे दूसरे तत्व से पहले रखा जाएगा जिसमें सेट बिट्स की संख्या कम होती है। मान लीजिए कुछ संख्याएं 12, 15, 7 हैं। तो सेट बिट्स मूल रूप से उनके द्विआधारी प्रति