Преобразовать шестнадцатеричную строку в int

Я пытаюсь преобразовать строку длиной 8 символов из шестнадцатеричного кода в целое число, чтобы я мог выполнить сравнение int вместо сравнения строк по множеству различных значений.

Я знаю, что это довольно тривиально в C ++, но мне нужно сделать это в Java. Тестовый пример, который мне нужно выполнить, по существу, конвертировать "AA0F245C" чтобы int, а затем вернуться к этой строке, чтобы я знал, что она конвертирует правильно.

Я пробовал следующее:

int decode = Integer.decode("0xAA0F245C");  // NumberFormatException
int decode2 = Integer.decode("AA0F245C"); //NumberFormatException
int parseInt = Integer.parseInt("AA0F245C", 16); //NumberFormatException
int valueOf = Integer.valueOf("AA0F245C", 16); //NumberFormatException

Я также попытался сделать это двумя символами за раз и умножить результаты, что преобразование работает, но число не правильно.

int id = 0;
for (int h = 0; h < hex.length(); h= h+2)
{
    String sub = hex.subSequence(h, h+2).toString();

if (id == 0)
    id = Integer.valueOf(sub, 16);
else
    id *= Integer.valueOf(sub, 16);             
 }
//ID = 8445600 which = 80DEA0 if I convert it back. 

Я не могу использовать сторонние библиотеки только для того, чтобы вы знали, так что это должно быть сделано в стандартных библиотеках Java.

Спасибо за вашу помощь заранее.

Ответы на вопрос(7)

Ваш ответ на вопрос