Hex-String in int konvertieren

Ich versuche, eine Zeichenfolge mit 8 Zeichen Hex-Code in eine Ganzzahl umzuwandeln, damit ich einen Int-Vergleich durchführen kann, anstatt Zeichenfolgen mit vielen verschiedenen Werten zu vergleichen.

Ich weiß, dass dies in C ++ ziemlich trivial ist, aber ich muss es in Java tun. Der Testfall, den ich erfüllen muss, besteht im Wesentlichen darin, "AA0F245C" in int und dann wieder in diesen String zu konvertieren, damit ich weiß, dass er richtig konvertiert.

Ich habe Folgendes versucht:

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

Ich habe auch versucht, es mit zwei Zeichen gleichzeitig zu machen und die Ergebnisse zu multiplizieren. Die Konvertierung funktioniert, aber die Zahl stimmt nicht.

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. 

Ich kann keine Bibliotheken von Drittanbietern verwenden, nur damit Sie wissen, dass dies in Java-Standardbibliotheken durchgeführt werden muss.

Danke im Voraus für Ihre Hilfe.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage