Convert hex string to int

hex, java

Solution

It's simply too big for an int (which is 4 bytes and signed).

Use

Long.parseLong("AA0F245C", 16);

Problem

I am trying to convert a string that is 8 characters long of hex code into an integer so that I can do int comparison instead of string comparisons over a lot of different values. I know this is fairly trivial in C++ but I need to do it in Java. The test case I need to satisfy is essentially to Convert "AA0F245C" to int and then back to that string so that I know it is converting right. I have tried the following: ``` 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 ``` I have also tried doing it two characters at a time and multiplying the results, which the conversion works but the number is not right. ``` 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. ``` I can not use third party libraries just so you know, so this has to be done in Java standard libraries. Thank you for your help in advance.

Original source

Related problems