java - 为什么 Integer.parseInt(String s, 2) 和 Integer.toBinaryString(int i) 不兼容?

标签 java

为什么这两种方法在处理二进制数时使用两种不同的方法? Integer.parseInt(String s, 2) 方法中表示负二进制数的字符串应以 - 字符开头,但 Integer.toBinaryString(int i) code> 返回前面附加 1 的字符串。所以,这段代码

Integer.parseInt(Integer.toBinaryString(-1), 2);

抛出java.lang.NumberFormatException。这种行为的原因是什么?

最佳答案

这是设计使然; Integer.toBinaryString

Returns a string representation of the integer argument as an unsigned integer in base 2.

(强调)。

即,toBinaryString 提供了一种将整数格式化为常见的 two's complement representation 的方法。 ,这是大多数处理器实际在内部存储有符号整数的方式。

关于java - 为什么 Integer.parseInt(String s, 2) 和 Integer.toBinaryString(int i) 不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809412/

相关文章:

java - 从 Java 中的 Json 字符串中删除重复项?

java - Gate ANNIE 语法

java - 插入数据库时​​字符串转换奇怪

java - 使用 JPL 制作并加载 SWI-Prolog 实例的副本

java网络服务客户端

java - 如何让RESTful java客户端在Openstack上发送GET/POST请求?

java - Android 操作快速查看 - 文件问题 - 尝试打开远程 pdf 文档

java - 一个简短的脚本,用于处理充满文件的目录,一个接一个,维护名称

java - RequestConfig 和 IOReactorConfig 超时设置的区别?

java - ImageIO读取中的控制缓存意味着什么