java 中的 Convert.ToInt64 等价物

Convert.ToInt64 equivalent in java

我在 C# 中尝试了以下代码,结果如下:

long dec1 = Convert.ToInt64("B62FD56EFD5B375D", 16);

结果:-531879796222753398

我试图在 java 中这样做,但我总是得到 NumberFormatException,因为字符串中有字母数字。我在 java 中的代码是:

Long.parseLong("B62FD56EFD5B375D", 16);

我可以知道 java 中的这个等价物是什么吗?

你可以试试 BigInteger

BigInteger value = new BigInteger(hex, 16);

您可以在 Java 中使用 Long.parseUnsignedLong 以获得相同的结果。

long result = Long.parseUnsignedLong("B62FD56EFD5B375D", 16);

long 值的最大值为 9,223,372,036,854,775,807(含)。当值 B62FD56EFD5B375D 被解析时,它是 13,127,946,111,482,018,682,无法保存在长值中。

所以改用 BigInteger。

long dec1 = new BigInteger("B62FD56EFD5B375D", 16).longValue();