我有以下代码...的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