32-बिट अहस्ताक्षरित बाइनरी नंबर को देखते हुए, कार्य सेट बिट्स को गिनना है, यानी, '1' इसमें मौजूद है।
उदाहरण के लिए
इनपुट:
N = 00000000000000100111
आउटपुट:
4
स्पष्टीकरण: दिए गए अहस्ताक्षरित संख्या में मौजूद कुल सेट बिट्स 4 हैं, इस प्रकार हम आउटपुट को '4' के रूप में वापस कर देंगे।
इस समस्या को हल करने का तरीका
हमने एक अहस्ताक्षरित 32-बिट बाइनरी नंबर दिया है। कार्य यह गिनना है कि इसमें कितने '1' मौजूद हैं।
दिए गए बाइनरी नंबर में मौजूद '1' की संख्या की गणना करने के लिए, हम इनबिल्ट एसटीएल फ़ंक्शन '__builin_popcount(n)' का उपयोग कर सकते हैं जो इनपुट पैरामीटर के रूप में एक बाइनरी नंबर लेता है।
- इनपुट के रूप में एक बाइनरी नंबर N लें।
- एक फ़ंक्शन count1Bit(uint32_t n) इनपुट के रूप में 32-बिट बाइनरी नंबर लेता है और बाइनरी नंबर में मौजूद '1' की गिनती देता है।
- इनबिल्ट फंक्शन __builtin_popcount(n) 'n' के इनपुट को एक पैरामीटर के रूप में लेता है और काउंट लौटाता है।
उदाहरण
#include<bits/stdc++.h> using namespace std; int count1bits(uint32_t n) { return bitset < 32 > (n).count(); } int main() { uint32_t N = 0000000010100000011; cout << count1bits(N) << endl; return 0; }
उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,
आउटपुट
4
दी गई संख्या में 4 सेट बिट्स या '1s' मौजूद होते हैं। तो, आउटपुट '4' है।