據我所知,當使用2的補碼時,第一個數字是1,那麼你翻轉數字並找到新的值字節並使其成爲負數。javadoc說Integer.parseInt(String s,radix)和Integer.valueOf(String s,radix)都應該返回一個有符號整數對象,但是當我用這個測試它時:Java - Integer.parseInt()當radix = 2時不返回負數
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方法,如果你輸入一個字節(和基數= 2),則該方法會返回一個正確簽名的值?
也許是因爲它返回的'byte'的'int'呢? – Mysticial 2013-03-14 16:56:56