求最大连续bit数

示例1
输入:200
输出:2
说明:
在这个样例中,十进制 200 等于二进制 11 001 000,其中最长连续 1 段的长度为 2。

实现代码:
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}