Я хотел преобразовать целочисленные значения в шестнадцатеричные строки. Я быстро искал StackOverflow и сделали это following way (как принято решение, указанное - однако не выглядел достаточно осторожным):Integer to hex String NumberformatException
Integer.valueOf(String.valueOf(n), 16);
Однако при попытке преобразовать
Integer.valueOf(String.valueOf(-2115381772), 16)
он бросает NumberFormatException
. Итак, из любопытства - почему выбрано NumberFormatException?
(После этого я изменил код Integer.toHexString(-2115381772)
и все работает, как ожидалось.)
Не понимаю его полностью. -2115381772 <-2147483648 Таким образом, вполне допустимый int. Однако Мераман объяснил это ... – Lonzak
Ну, вы указали значение '' -2115381772'' в шестнадцатеричном формате, и это '' -142089918322'' десятичное, что, конечно, меньше, чем '' -2147483648'' (и, кстати, '' -2115381772> -2147483648''). – steffen