Java,Long.parse 二进制字符串

标签 java long-integer

为什么此代码会抛出 NumberFormatException:

String binStr = "1000000000000000000000000000000000000000000000000000000000000000";
System.out.println(binStr.length());// =  64
System.out.println(Long.parseLong(binStr, 2));

最佳答案

1000000000000000000000000000000000000000000000000000000000000000000 大于 Long.MAX_VALUE

参见 https://stackoverflow.com/a/8888969/597657

<罢工>

考虑使用 BigInteger(String val, int radix)相反。


编辑:

好的,这对我来说是新的。看来 Integer.parseInt(binaryIntegerString, 2)Long.parseLong(binaryLongString, 2) 将二进制解析为符号幅度而不是 2 的补码。

关于Java,Long.parse 二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926920/

相关文章:

Python 无限整数

c++ - 将 long long 类型的数字传递给函数(引用与值)(C++)

Objective-C (iOS) : NSData to long long value?

java - 转换同步链表时出错

java - 无法在 Maven 本地存储库中找到自定义 Gradle 插件

java - 如何进行结构化日志记录?

java - 如果 hashCode() 没有被覆盖,HashSet 允许重复项插入

Java字节数组到字符串到字节数组

php - Ajax长轮询问题

java - 将 MD5 转换为长