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();
我在 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();