我有以下代碼...的Java轉換INT爲十六進制,然後再返回
int Val=-32768;
String Hex=Integer.toHexString(Val);
這相當於ffff8000
int FirstAttempt=Integer.parseInt(Hex,16); // Error "Invalid Int"
int SecondAttempt=Integer.decode("0x"+Hex); // Error "Invalid Int"
所以,最初,它的價值-32768轉換爲十六進制字符串ffff8000,但它不能將十六進制字符串轉換回整數。
在.Net
它的工作原理和我所預期的一樣,並且returns -32768
。
我知道我可以自己編寫自己的小方法來轉換它,但我只是想知道我是否錯過了某些東西,或者如果這真的是一個錯誤?
可能都plicate [Java負int到十六進制失敗](http:// stackoverflow。com/questions/845230/java-negative-int-to-hex-and-back-failures) – 2012-08-17 12:17:38
只是一個提示:由於約定變量名稱以小寫字母開頭:'int firstAttempt = 5;' – Simulant 2012-08-17 12:20:24