यहां हम देखेंगे कि कैसे हम एक पूर्णांक संख्या में सेट बिट्स की संख्या जांच सकते हैं। सेट बिट्स संख्या के बाइनरी प्रतिनिधित्व में 1 होते हैं। उदाहरण के लिए संख्या 13 में तीन सेट बिट्स 1101 हैं। तो गिनती 3 होगी।
इस समस्या को हल करने के लिए, हम संख्या को दाएं शिफ्ट करेंगे, और यदि LSB 1 है, तो गिनती बढ़ाएं। जब तक संख्या 0 नहीं हो जाती, यह चलेगा।
एल्गोरिदम
countSetBit()
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
उदाहरण
#includeusing 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++ में संकलित करना चाहते हैं, तो यह संकलन समय पर त्रुटि लौटाएगा। यह कहेगा कि बहुत सारे तर्क पारित किए गए हैं।