我尝试在c#中使用以下代码,结果如下:
long dec1 = Convert.ToInt64("B62FD56EFD5B375D", 16);
结果:-531879796222753398
我试图在Java中执行此操作,但我总是得到NumberFormatException
,因为字符串中包含字母数字。我在Java中编写的代码是:
Long.parseLong("B62FD56EFD5B375D", 16);
我可以知道在Java中这相当于什么吗?
答案 0 :(得分:4)
您可以在Java中使用Long.parseUnsignedLong
来获得相同的结果。
long result = Long.parseUnsignedLong("B62FD56EFD5B375D", 16);
答案 1 :(得分:1)
对于长值,最大值为9,223,372,036,854,775,807
(含)。解析值B62FD56EFD5B375D
时,它是13,127,946,111,482,018,682
,无法保存长值。
因此,请改用BigInteger。
答案 2 :(得分:1)
long dec1 = new BigInteger("B62FD56EFD5B375D", 16).longValue();
答案 3 :(得分:0)
您可以尝试使用BigInteger
BigInteger value = new BigInteger(hex, 16);