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.