C#程序在给定整数的二进制表示中找到最长连续1的长度

要获取连续的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;
   }

   //驱动程式码
   public static void Main() {
      //二进制或150是10010110-
      Console.WriteLine(findConsecutive(150));
   }
}

输出结果

2