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

सी/सी++ प्रोग्राम एक पूर्णांक में सेट बिट्स की गणना करने के लिए?

यहां हम देखेंगे कि हम एक पूर्णांक संख्या में सेट बिट्स की संख्या की जांच कैसे कर सकते हैं। सेट बिट्स एक संख्या के द्विआधारी प्रतिनिधित्व में 1 हैं। उदाहरण के लिए संख्या 13 में तीन सेट बिट्स 1101 हैं। तो गिनती 3 होगी।

इस समस्या को हल करने के लिए, हम संख्या को दाईं ओर स्थानांतरित करेंगे, और यदि LSb 1 है, तो गिनती बढ़ाएँ। जब तक संख्या 0 नहीं हो जाती, यह चलती रहेगी।

एल्गोरिदम

काउंटसेटबिट ()

begin
   count := 0
   while count is not 0, do
      if LSb of n is set, then
         count := count + 1
      end if
         n := n after shifting 1 bit to right
   done
   return count
end

उदाहरण

#include<iostream>
using namespace std;
int count_set_bit(int n) {
   int count = 0;
   while(n != 0) {
      if(n & 1 == 1) {
         count++;
      }
      n = n >> 1; //right shift 1 bit
   }
   return count;
}
int main() {
   int n;
   cout << "Enter a number: ";
   cin >> n;
   cout << "Number of set bits: " << count_set_bit(n);
}

आउटपुट

Enter a number: 29
Number of set bits: 4

यह प्रोग्राम C में चलेगा और आउटपुट जेनरेट करेगा, लेकिन जब हम C++ में कंपाइल करना चाहते हैं, तो यह कंपाइल समय के दौरान एक एरर लौटाएगा। यह कहेगा कि बहुत सारे तर्क पारित हो गए हैं।


  1. सी/सी++ एनएच कैटलन नंबर के लिए प्रोग्राम?

    कैटलन संख्याएं संख्याओं का एक क्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक क्रम बनाती हैं जो गिनती की विभिन्न समस्याओं में होती हैं, जिनमें अक्सर पुनरावर्ती-परिभाषित वस्तुएं शामिल होती हैं। सीएन लंबाई 2n के डाइक शब्दों की संख्या है। एक डाइक शब्द एक स्ट्रिंग है जिसमें एन एक्स और एन वाई शामि

  1. सी/सी++ प्रोग्राम किसी संख्या के भाज्य में अनुगामी शून्यों की गणना करने के लिए?

    यहां हम देखेंगे कि किसी भी संख्या के भाज्य के परिणाम के लिए अनुगामी 0s की संख्या की गणना कैसे करें। तो अगर n =5, तो 5! =120. केवल एक अनुगामी 0 है। 20! के लिए, यह 20 के रूप में 4 शून्य होगा! =2432902008176640000। सबसे आसान तरीका सिर्फ फैक्टोरियल की गणना करना और 0 की गणना करना है। लेकिन यह दृष्टिकोण

  1. सी में फ्लोटिंग पॉइंट नंबर में सेट बिट्स को कैसे गिनें?

    इस समस्या में, एक फ्लोटिंग पॉइंट मान दिया जाता है। हमें इसके द्विआधारी प्रतिनिधित्व में सेट बिट्स की संख्या का पता लगाना है। उदाहरण के लिए, यदि एक फ्लोटिंग पॉइंट नंबर 0.15625 है, तो छह सेट बिट्स हैं। एक ठेठ सी संकलक एकल परिशुद्धता फ़्लोटिंग पॉइंट प्रतिनिधित्व का उपयोग करता था। तो यह इस तरह दिखेगा।