求最大连续bit数

示例1

输入:200

输出:2

说明:

复制代码
在这个样例中,十进制 200​ 等于二进制 11 001 000,其中最长连续 1 段的长度为 2。

实现代码:

java 复制代码
public static void main(String[] args) {
        // 创建Scanner对象读取输入
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 读取输入的十进制整数
        
        int maxLength = 0;    // 记录最长连续1的长度
        int currentLength = 0; // 记录当前连续1的长度
        
        // 遍历二进制位
        while (n > 0) {
            if ((n & 1) == 1) {
                // 当前位是1,增加当前连续1的长度
                currentLength++;
                maxLength = Math.max(maxLength, currentLength);
            } else {
                // 当前位是0,重置当前连续1的长度
                currentLength = 0;
            }
            // 右移一位,处理下一个二进制位
            n >>= 1;
        }
        
        System.out.println(maxLength);  // 输出结果
        scanner.close();  // 关闭Scanner
    }
相关推荐
I_belong_to_jesus2 小时前
C++关于分支预测的优化1
开发语言·c++·算法
budingxiaomoli4 小时前
Spring统一功能处理
java·后端·spring
Flynn Liang6 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵6 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
Code_Solitude9 小时前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司9 小时前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划
文丑颜不良啊10 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain10 小时前
C++转Java日记(10)
java·开发语言
简 洁 冬冬11 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型