У меня есть следующий код...
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
.
Я знаю, что я мог бы написать свой собственный маленький метод, чтобы преобразовать это сам, но мне просто интересно, не хватает ли я чего-то или если это действительно ошибка?