C# 程序用于查找给定整数的二进制表示中最长连续 1 的长度
programmingserver side programmingcsharp更新于 2025/9/16 4:02:00
要获取连续的 1,请使用按位左移运算符。这是我们的十进制数。
i = (i & (i << 1));
循环上述操作,直到 I 的值为 0,并使用变量获取长度;此处计数。
while (i != 0) {
i = (i & (i << 1));
count++;
}
我们这里举的例子是 150。
150 的二进制是 10010110。因此,我们有两个连续的 1。
示例
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

