当前位置: 首页 > 编程笔记 >

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

赵志
2023-03-14
本文向大家介绍C#程序在给定整数的二进制表示中找到最长连续1的长度,包括了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
 类似资料:
  • 本文向大家介绍在C ++中一键查找二进制表示形式的最长1序列,包括了在C ++中一键查找二进制表示形式的最长1序列的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数n。在其中,我们可以进行一位翻转以生成最长的1s序列。假设数字为13,因此二进制表示形式为1101。如果将1翻转为make 0到1,则它将为1111。这是最长的1s序列 为了解决这个问题,我们将遍历给定数字的位。我们将跟踪当前

  • 我为这个问题写了一个方法:输入:整数数组返回:最长连续整数序列的长度。like:对于{9,1,2,3},返回3,因为{1,2,3} 这个方法运行得不好。希望有人能帮我调试。 非常感谢!!!

  • 问题内容: 对于这个例子说,我有两个字段的表,和。 该表具有以下数据 我想回来 我想返回的结果是每个区域递增连续值的最长长度。对于。 我将如何在MS Sql 2005上执行此操作? 问题答案: 一种方法是使用遍历每一行的递归CTE。如果该行符合条件(增加同一区域的订单号),则将链长增加一。如果没有,则启动一个新链: SQL Fiddle的实时示例。 另一种方法是使用查询查找“中断”,即以相同区域的

  • 我想显示给定数组int中的所有连续序列。最后,我想用文本显示最长的序列。 我对数组进行了排序,找到了所有序列 以下仅是一小段代码,因为我知道其余部分不起作用: 我尝试了许多不同的方法,但无法弄清楚。

  • 我有一个数据帧: 而我的目标是找到最长的连续增长期。它应该返回:老实说,我不知道从哪里开始。这些是我在熊猫的第一步,我不知道我应该使用哪些工具来获得这些信息。 有谁能帮我/给我指明正确的方向吗?

  • 问题内容: 我以为简单的事情并没有那么多。 我需要将一个长整数转换为二进制。 例如: 输出是10000000100 但是当我使用Integer.toBinaryString(2199023255552); 这是行不通的。当然,对于该函数而言,这个数字太大了,我找不到能从长整数转换的数字。 有什么建议? 谢谢。 问题答案: 添加一个以指示其long <1>并使用Long类 <2>: <1> 除非另有