我有以下密码。
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,但是之后又不能将十六进制字符串转换回 Integer。
在 .Net
和 returns -32768
中,它的工作原理和我预期的一样。
我知道我可以编写自己的小方法来转换它,但我只是想知道我是否遗漏了什么,或者这是否真的是一个错误?