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

C++ में दी गई संख्या के द्विआधारी प्रतिनिधित्व में अग्रणी शून्य की संख्या

किसी संख्या को देखते हुए, हमें उसके द्विआधारी निरूपण में अग्रणी शून्यों की संख्या ज्ञात करनी होती है। मान लें कि कुल बिट्स 32 हैं। आइए एक उदाहरण देखें।

इनपुट

5

आउटपुट

25

5 का द्विआधारी प्रतिनिधित्व 00000...00101 है। अग्रणी शून्यों की संख्या 29 है।

एल्गोरिदम

  • संख्या n प्रारंभ करें।
  • n का द्विआधारी प्रतिनिधित्व ज्ञात कीजिए।
  • बिट्स की कुल संख्या यानी 32 से n के बाइनरी प्रतिनिधित्व की लंबाई घटाएं।
  • परिणाम लौटाएं।

कार्यान्वयन

C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है

#include <bits/stdc++.h>
using namespace std;
int getLeadingZeroesCount(unsigned int n) {
   int totalBits = sizeof(n) * 8;
   string binary = "";
   while (n) {
      int remainder = n % 2;
      if (remainder || binary.length() > 0) {
         binary += remainder;
      }
      n /= 2;
   }
   return totalBits - binary.length();
}
int main() {
   int n = 101;
   cout << getLeadingZeroesCount(n) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

25

  1. जाँच करें कि क्या दिया गया बाइनरी ट्री C++ में SumTree है

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

  1. जाँच करें कि दी गई संख्या C++ में विरल है या नहीं

    इस खंड में, हम देखेंगे कि कैसे जांचा जाता है कि कोई संख्या विरल है या नहीं। एक संख्या को विरल कहा जाता है यदि संख्या के द्विआधारी प्रतिनिधित्व में दो या दो से अधिक लगातार 1s नहीं हैं। मान लीजिए एक संख्या 72 के समान है। यह 01001000 है। यहाँ कोई दो या अधिक क्रमागत 1s नहीं हैं। यह जांचने के लिए कि कोई

  1. सी ++ प्रोग्राम ऑक्टल नंबर को बाइनरी नंबर में कनवर्ट करने के लिए

    एक कंप्यूटर सिस्टम में, बाइनरी नंबर बाइनरी नंबर सिस्टम में व्यक्त किया जाता है जबकि ऑक्टल नंबर ऑक्टल नंबर सिस्टम में होता है। बाइनरी नंबर बेस 2 में है जबकि ऑक्टल नंबर बेस 8 में है। बाइनरी नंबर और उनके संगत ऑक्टल नंबर के उदाहरण इस प्रकार हैं - बाइनरी नंबर अष्टाधारी संख्या 01101 15 00101 5 10110