当前位置: 首页 > 面试题库 >

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

璩涛
2023-03-14
问题内容

我想在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)
接受多种格式:

接受以下语法给定的十进制,十六进制和八进制数字:
DecodableString:

  • 签名选择十进制数字
  • 登录选择 0X HexDigits
  • 登录选择 0X HexDigits
  • 选择#HexDigits 登录
  • 签名选择 0 OctalDigits

标志:

  • --

但是,如果这对您没有帮助,则您的String超出了可以容纳的范围。您需要一个BigInteger

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

输出:

23846102773961507302322850521

为了进行比较,这里是Long.MAX_VALUE

9223372036854775807



 类似资料:
  • 问题内容: 我编写了一个简单的程序,用于在Java中向串行端口发送和接收数据。我通过回送测试(Rx到Tx)连接串行端口设备。它工作正常。但我无法发送和接收十六进制数据到串行端口和接收串行端口。在我的设备中使用了FT232BL芯片,因此是否需要任何dll或其他库来将十六进制数据发送和接收到串行端口设备。我的代码如下。 问题答案: 十六进制: 十六进制为:

  • 问题内容: 我在ex中有整数。16,我正在尝试将此数字转换为十六进制数字。我试图通过使用十六进制函数来实现此目的,但是每当您向十六进制函数提供整数时,它都会返回十六进制数字的字符串表示形式, 有人可以告诉我如何将字符串格式的十六进制数字转换为简单的十六进制数字。 谢谢!! 问题答案:

  • 问题内容: 我试图在Java中将类似“ testing123”的字符串转换为十六进制形式。我目前正在使用BlueJ。 并将其转换回去,除了向后转换,是否一样? 问题答案: 这是将其转换为十六进制的简短方法:

  • 我有十六进制字符串,例如“0x103E”,我想将其转换为整数。意思是to我尝试了但它给出了数字格式异常。我如何实现这一点?

  • 问题内容: 如何在Java中将十六进制字符串转换为单精度浮点数? 例如,如何实现: 浮点数f = HexStringToFloat(“ BF800000”); // f现在应包含-1.0 我问这个是因为我尝试过: 但是我得到以下异常: java.lang.NumberFormatException:对于输入字符串:“ bf800000” 问题答案:

  • 问题内容: 要将String转换为十六进制,我正在使用: 在此处投票最高的答案中对此进行了概述:在Java中将 字符串转换为十六进制 我该如何反向执行,即将十六进制转换为字符串? 问题答案: 您可以从转换后的字符串中进行重构,这是一种实现方法: 另一种方法是使用,从包: 单元测试以验证: 注:领先剥离的仅仅是必要的,因为的你的填充方法。如果您不介意将其替换为简单的,则可以将此行放在: