为什么这两种方法在处理二进制数时使用两种不同的方法? 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/