Es funktioniert, wenn ich binäre wie 10, 1011, 1101 eingeben. Aber es druckt immer "Nicht binär", wenn ich 10011010010 eingeben, während es 1234 sein sollte. Wie ändert man es?Wie konvertiert man große binäre in dezimal?
import java.util.Scanner;
public class Binary {
public static int toDecimal(String b) {
int decimal = Integer.parseInt(b,2);
return decimal;
}
public static boolean isBinary(String b) {
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) {
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!");
}
}
}
einen besonderen Grund zu verwenden, wie einen gewundenen 'IsBinary()' Algorithmus? – shmosel
Warum markieren Sie nicht die beste Antwort als [akzeptiert] (http://stackoverflow.com/help/accepted-answer)? Sie können dies tun, indem Sie auf das Häkchen neben der Antwort klicken. Dies wird Ihre Rep zu erhöhen. –