一输入比较长的二进制数就显示不是二进制数 是在boolean那里出的问题吗 不知道怎么修改才能正常运行
比如输入10011010010 能显示1234
import java.util.Scanner;
public class Binary {
// Returns decimal representation of given binary number.
public static int toDecimal(String b) {
// TODO
int decimal = Integer.parseInt(b,2);
return decimal;
}
// Returns whether or not given string is a binary number.
public static boolean isBinary(String b) {
// TODO
int inputNum = Integer.parseInt(b);
while(inputNum != 0){
if(inputNum % 10 > 1){
return false;
}
inputNum = inputNum / 10;
}
return true;
}
public static void main(String[] args) {
// TODO
System.out.print("Enter binary: ");
Scanner in = new Scanner(System.in);
String binaryNum = in.next();
try{
int intNum = Integer.parseInt(binaryNum);
boolean isBinary = isBinary(binaryNum);
if(isBinary){
int outputDecimal = toDecimal(binaryNum);
System.out.println("\n"+ outputDecimal +" in decimal");
}else{
System.out.println("\n" + "Not binary!");
}
}catch(Exception e){
System.out.println("\n" + "Not binary!");
}
}
}
...额 已经会弄了。大家不用看这问题了
Integer 长度超了 用Long就行了