2 andrew9991 andrew9991 于 2016.04.17 13:16 提问

为什么我写的这个二进制转十进制的不能转换比较大的数

一输入比较长的二进制数就显示不是二进制数 是在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!");
    }
}

}

1个回答

andrew9991
andrew9991   2016.04.17 16:51
已采纳

...额 已经会弄了。大家不用看这问题了
Integer 长度超了 用Long就行了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!