我想将Integer.MAX_VALUE
转换为二进制文件,并希望表示形式为int
。我将其传递给Integer.tobinarystring()
并用Integer.parseint
包装,但是我得到了numberformatexception。
这是代码
System.out.println(
Integer.parseInt(
Integer.toBinaryString(Integer.MAX_VALUE)
)
);
这是个例外
Exception in thread "main" java.lang.NumberFormatException: For input string: "1111111111111111111111111111111"
答案 0 :(得分:4)
Integer.MAX_VALUE
是2,147,483,647
在二进制文件中是:
1111111111111111111111111111111
如果我们再次将其视为整数,即1,111,111,111,111,111,111,111,111,111,111
,您可能会发现它比最大值大得多。
如果您确实需要将其作为一个整数来处理,您可能想研究BigInteger
。
答案 1 :(得分:2)
如果要获取二进制字符串的整数值
1111111111111111111111111111111
您必须使用parseInt()
的另一个签名,该签名以radix
作为第二个参数,
在这种情况下,二进制字符串的基数为2
String str = Integer.toBinaryString(Integer.MAX_VALUE);
int number = Integer.parseInt(str, 2);
System.out.println(number);
它将打印:
2147483647