在java中转换为等效的.ToInt64

在java中转换为等效的.ToInt64,java,c#,parsing,long-integer,typeconverter,Java,C#,Parsing,Long Integer,Typeconverter,我在c#中尝试了以下代码,结果如下: long dec1 = Convert.ToInt64("B62FD56EFD5B375D", 16); 结果:-531879796222753398 我试图用java实现这一点,但我总是得到NumberFormatException,因为字符串中有字母数字。我用java编写的代码是: Long.parseLong("B62FD56EFD5B375D", 16); 我可以知道这在java中的等价物是什么吗?您可以尝试使用BigInteger BigInt

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

long dec1 = Convert.ToInt64("B62FD56EFD5B375D", 16);
结果:-531879796222753398

我试图用java实现这一点,但我总是得到
NumberFormatException
,因为字符串中有字母数字。我用java编写的代码是:

Long.parseLong("B62FD56EFD5B375D", 16);

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

您可以尝试使用BigInteger

BigInteger value = new BigInteger(hex, 16);

您可以尝试使用BigInteger

BigInteger value = new BigInteger(hex, 16);
您可以使用Java来获得相同的结果

long result = Long.parseUnsignedLong("B62FD56EFD5B375D", 16);
您可以使用Java来获得相同的结果

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

对于长值,最大值为
9223372036854775807
(含)。当值
B62FD56EFD5B375D
被解析时,它是
1312794611482018682
,无法保存在长值中


因此,请改用BigInteger。

对于长值,最大值为
9223372036854775807
(含)。当值
B62FD56EFD5B375D
被解析时,它是
1312794611482018682
,无法保存在长值中

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

因此,请改用BigInteger。

请展示您在Java中的尝试。我希望
Long.parseLong(text,16)
可以。@JonSkeet,是的,我用这种方法,但是点击
NumberFormatException
Long result=Long.parseUnsignedLong(“B62FD56EFD5B375D”,16)
应该在java和.net中提供相同的结果。顺便说一句,当我执行代码时,你在帖子中显示的结果似乎不是我在JetBrains Rider上看到的结果。java和c#我都得到了
-5318797962227533987
。@Aomine,你可以发布它,我会把它标记为我的答案。谢谢。@Panadolchung当然可以,我想可以。请展示一下你在Java中的尝试。我希望
Long.parseLong(text,16)
可以。@JonSkeet,是的,我用这种方法,但是点击
NumberFormatException
Long result=Long.parseUnsignedLong(“B62FD56EFD5B375D”,16)
应该在java和.net中提供相同的结果。顺便说一句,当我执行代码时,你在帖子中显示的结果似乎不是我在JetBrains Rider上看到的结果。java和c#我都得到了
-5318797962227533987
。@Aomine,你可以发布它,我会把它标记为我的答案。谢谢。@Panadolchung当然可以,我想可以。
long dec1 = new BigInteger("B62FD56EFD5B375D", 16).longValue();