在java中读取长二进制数

时间:2015-03-30 02:56:57

标签: java binary number-formatting

110011000111100111001100011110011100110001111001110011000111100111001100011110011100110001111001

4 个答案:

答案 0 :(得分:1)

这不是检查二进制数的有效方法。您将转换为基数为10的int,然后检查基数10中的每个数字是零还是一。转换本身将在足够长的输入字符串上失败,如果不是,则检查也将失败。

你不应该全部转换它,你应该检查输入字符串本身。

编辑其实你不需要做任何事情。如果字符串不是指定基数中的数字,Integer.parseInt()将为您检查并抛出NumberFormatException

答案 1 :(得分:0)

您首先将二进制数字字符串解析为十进制整数。如果它有超过10位有效数字,则其十进制解释太大而无法放入int,因此十进制转换失败。

当您要将数字字符串解析为二进制数时,只需避免首先将其解析为十进制数字。例如,您发布的大部分内容都可以简化为:

int inputNumber = Integer.parseInt(returnEnterNumber(), 
        binaryToDecimal.isSelected() ? 2 : 10);

答案 2 :(得分:0)

看看Integers MAX值:

public class MainClass {

public static void main(String[] arg) {
System.out.println(Integer.MAX_VALUE);   

System.out.println(Integer.MIN_VALUE);   

 }
}

输出将是:

2147483647
-2147483648

这意味着如果您的数字超过10位,则超出了Integer数据类型的最大数量。 尝试对二进制值使用BigInteger或考虑将其作为String

返回

答案 3 :(得分:0)

以下是一行代码,可以实现您的目标

System.out.println(new BigInteger("10101010101010111101010101001101010101010101001010101010101001011101010101010101",2).toString());