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

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

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

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

इनपुट - इंट नंबर =50

आउटपुट − किसी संख्या में कुल सेट बिट्स की संख्या है − 3

स्पष्टीकरण - एक संख्या 50 का द्विआधारी निरूपण 110010 है और यदि हम इसे 8 अंकों की संख्या में परिकलित करते हैं तो शुरुआत में दो 0 जोड़ दिए जाएंगे। तो, एक संख्या में कुल सेट बिट 3 होते हैं।

इनपुट - इंट नंबर =10

आउटपुट − किसी संख्या में कुल सेट बिट्स की संख्या है − 2

स्पष्टीकरण − एक संख्या 10 का बाइनरी निरूपण 00001010 है और यदि हम इसे 8 अंकों की संख्या में परिकलित करते हैं तो शुरुआत में चार 0 जोड़ दिए जाएंगे। तो, एक संख्या में कुल सेट बिट्स 2 हैं।

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

  • पूर्णांक प्रकार के एक चर में संख्या दर्ज करें

  • अहस्ताक्षरित int प्रकार के सेट बिट्स की कुल संख्या को संग्रहीत करने के लिए एक चर गणना घोषित करें

  • I से 1<<7 और i> 0 और i से i / 2

    . तक के लिए लूप प्रारंभ करें
  • लूप के अंदर, num &1 ==TRUE चेक करें फिर 1 प्रिंट करें और प्रिंट करें 0

  • संख्या 0 नहीं होने तक बिट्स की कुल संख्या की गणना करने के लिए लूप प्रारंभ करें

  • लूप के अंदर, गिनती =गिनती + संख्या और 1 सेट करें और संख्या भी सेट करें>>=1

  • गिनती प्रिंट करें

उदाहरण

#include<iostream>
using namespace std;
//Count total set bits in a number
unsigned int bits(unsigned int number){
   unsigned int count = 0;
   unsigned i;
   //display the total 8-bit number
   cout<<"8-bit digits of "<<number<<" is: ";
   for (i = 1 << 7; i > 0; i = i / 2){
      (number & i)? cout<<"1": cout<<"0";
   }
   //calculate the total set bits in a number
   while (number){
      count += number & 1;
      number >>= 1;
   }
   cout<<"\nCount of total set bits in a number are: "<<count;
}
int main(){
   int number = 50;
   bits(number);
   return 0;
}

आउटपुट

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

8-bit digits of 50 is: 00110010
Count of total set bits in a number are: 3

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

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

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

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

  1. C++ में एक सेट को k सबसेट में विभाजित करने के तरीकों की संख्या की गणना करें

    दो अंक e और p दिए गए हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p विभाजन/सबसेट में विभाजित कर सकते हैं। उदाहरण के लिए इनपुट e=4 p=2 आउटपुट Count of number of ways to partition a set into k subsets are: 7 स्पष्टीकरण If elements are: a b c d then ways to divide them into