Integer.valueOf 不适用于 Java 中 -1 的二进制表示
Integer.valueOf not working for binary representation of -1 in Java
以下代码尝试输出以从其 2 的补码二进制表示中获取 -1,但给出 NumberFormatException。
System.out.println(Integer.parseInt(Integer.toBinaryString(-1), 2)); //Raises Exception
System.out.println(Integer.valueOf("11111111111111111111111111111111", 2)); //Raises Exception
事实上 Integer.valueOf 似乎不适用于任何有符号负数的二进制表示。为什么代码输出错误?
valueOf
不知道 2 的补码,因此它认为您要求隐藏基数为 2 的无符号值,该值太大而无法放入 int。 (尝试删除 1
之一。)
以下代码尝试输出以从其 2 的补码二进制表示中获取 -1,但给出 NumberFormatException。
System.out.println(Integer.parseInt(Integer.toBinaryString(-1), 2)); //Raises Exception
System.out.println(Integer.valueOf("11111111111111111111111111111111", 2)); //Raises Exception
事实上 Integer.valueOf 似乎不适用于任何有符号负数的二进制表示。为什么代码输出错误?
valueOf
不知道 2 的补码,因此它认为您要求隐藏基数为 2 的无符号值,该值太大而无法放入 int。 (尝试删除 1
之一。)