Integer.parseInt()
и Integer.valueOf()
ожидают знак минус (-
) для отрицательных значений.
Следовательно, "FFFFFFFF" анализируется как положительное значение, которое больше Integer.MAX_VALUE
. Отсюда и исключение.
Если вы хотите проанализировать его как отрицательное значение, проанализируйте его как long
и приведите к int
:
System.out.println((int)Long.parseLong("FFFFFFFF", 16));
print
-1