求最大连续bit数
| 描述 |
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 |
|---|---|
| 知识点 | 位运算 |
| 运行时间限制 | 10M |
| 内存限制 | 128 |
| 输入 |
输入一个byte数字 |
| 输出 |
输出转成二进制之后连续1的个数 |
| 样例输入 | 3 |
| 样例输出 | 2 |
package com.oj;
import java.util.HashMap;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
String binary = Integer.toBinaryString(num);
//System.out.println(binary);
int max = 0;
int count = 0;
for(int i = 0;i < binary.length(); i++)
if(binary.charAt(i)=='0'){
if(count>max){
max = count;
count = 0;
}
}else if(binary.charAt(i)=='1'&&i!=binary.length()-1){
count++;
}else if(binary.charAt(i)=='1'&&i==binary.length()-1){
count++;
if(count>max)
max = count;
}
System.out.println(max);
}
}
态度决定高度,细节决定成败,

浙公网安备 33010602011771号