• Post Reply Bookmark Topic Watch Topic
  • New Topic

Hex to long conversion  RSS feed

 
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear all ,

I am having a hex string as "d41d8cd98f00b204e9800998ecf8427e" ..
i need to convert this hex string into long
I did something following

String s="d41d8cd98f00b204e9800998ecf8427e";
long strLong= Long.parseLong(s,16);
System.out.println(strLong);


But at the runtime i am getting following error :
java.lang.NumberFormatException: For input string: "d41d8cd98f00b204e9800998ecf8427e"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:415)

Thanks in advance
 
Ranch Hand
Posts: 624
IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Your code, in concept, is fine. But a long in Java is a 8 bytes signed (two's complement) value. So it's maximum value is 2^63 - 1, or 7FFF FFFF FFFF FFFF in hex. The number you are providing is a wee bit bigger that that. ;) If you run your code with a smaller hex value it will work fine.

To work with a number that big, you'll need to use the BigInteger class (or BigDecimal if you need a floating number).
 
Marshal
Posts: 56608
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
. . . and welcome to JavaRanch
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!