据我所知,当使用 2 的补码时,第一个数字是 1,然后翻转数字并找到新字节的值并将其设为负数。javadoc 说 Integer.parseInt(String s, radix ) 和 Integer.valueOf(String s, radix) 都应该返回一个有符号整数对象,但是当我用这个测试它时:
System.out.println(Integer.parseInt("10000001", 2));
System.out.println(Integer.valueOf("10000001", 2));
我得到:
129
129
即使我的计算得到-127。有趣的是
System.out.println(Integer.parseInt("-10000001", 2));
打印出来:
-129
任何人都知道不同的java方法,如果你输入一个字节(和radix = 2),那么该方法将返回一个正确签名的值?