Converter seqüência hexadecimal para int

Eu estou tentando converter uma seqüência de caracteres que é 8 caracteres de código hexadecimal em um número inteiro para que eu possa fazer a comparação int em vez de comparações de seqüência de caracteres em muitos valores diferentes.

Eu sei que isso é bastante trivial em C ++, mas eu preciso fazê-lo em Java. O caso de teste que eu preciso satisfazer é essencialmente para converter "AA0F245C" para int e, em seguida, de volta para essa seqüência de caracteres para que eu saiba que está convertendo para a direita.

Eu tentei o seguinte:

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

Eu também tentei fazer dois caracteres de cada vez e multiplicar os resultados, o que a conversão funciona, mas o número não está certo.

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. 

Eu não posso usar bibliotecas de terceiros apenas para você saber, então isso tem que ser feito em bibliotecas padrão Java.

Obrigado por sua ajuda com antecedência.

questionAnswers(7)

yourAnswerToTheQuestion