在java中转换为等效的.ToInt64
我在c#中尝试了以下代码,结果如下:在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
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();