लगातार 1 लाने के लिए, बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर का उपयोग करें। यह रही हमारी दशमलव संख्या।
i = (i & (i << 1));
ऊपर लूप करें जब तक कि I का मान 0 न हो और एक चर का उपयोग करके लंबाई प्राप्त करें; यहां गिनें।
while (i != 0) {
i = (i & (i << 1));
count++;
} हमने यहां जो उदाहरण लिया है वह 150 है।
150 के लिए बाइनरी 10010110 है। इसलिए, हमारे पास लगातार दो हैं।
उदाहरण
using System;
class Demo {
private static int findConsecutive(int i) {
int count = 0;
while (i != 0) {
i = (i & (i < 1));
count++;
}
return count;
}
// Driver code
public static void Main() {
// Binary or 150 is 10010110
Console.WriteLine(findConsecutive(150));
}
} आउटपुट
2