gpt4 book ai didi

java - 如何在java中将十六进制字符串转换为long?

转载 作者:IT老高 更新时间:2023-10-28 20:41:47 29 4
gpt4 key购买 nike

我想在java中将一个十六进制字符串转换为long。

我尝试过一般转换。

String s = "4d0d08ada45f9dde1e99cad9";
long l = Long.valueOf(s).longValue();
System.out.println(l);
String ls = Long.toString(l);

但我收到此错误消息:

java.lang.NumberFormatException: For input string: "4d0d08ada45f9dde1e99cad9"

有没有办法在java中将String转换为long?还是我在尝试这是不可能的!

谢谢!

最佳答案

Long.decode(str)接受多种格式:

Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
DecodableString:

  • Signopt DecimalNumeral
  • Signopt 0x HexDigits
  • Signopt 0X HexDigits
  • Signopt # HexDigits
  • Signopt 0 OctalDigits

Sign:

  • -

但是在您的情况下,这无济于事,您的 String 超出了 long 可以容纳的范围。您需要一个 BigInteger :

String s = "4d0d08ada45f9dde1e99cad9";
BigInteger bi = new BigInteger(s, 16);
System.out.println(bi);

输出:

23846102773961507302322850521

为了比较,这里是 Long.MAX_VALUE :

9223372036854775807

关于java - 如何在java中将十六进制字符串转换为long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153811/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com