题解 | #求最大连续bit数#
求最大连续bit数
https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
import java.util.Scanner; // 解题思路:通过i%2获取最后一位是否为1,用count记录连续的1的个数,如果为0,将count置为0,下次从新记录。 //注意:这里采用无符号右移>>>,因为负数用>>右移,会在左侧补1而不是0 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int i=1; int max = 0,count = 0; while(num!=0){ if((num & 1)==1){ //相当于num%2 count++; }else{ max = Math.max(max,count); count= 0; } num = num>>>1; //相当与num/2 } max = Math.max(max,count); System.out.println(max); } }