如何在java中将十六进制字符串转换为long? [英] How to convert a hexadecimal string to long in java?

查看:248
本文介绍了如何在java中将十六进制字符串转换为long?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我尝试了一般转换。

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

但是我收到以下错误消息:

  java.lang.NumberFormatException:用于输入字符串:4d0d08ada45f9dde1e99cad9

有没有什么办法在String中将String转换为long?或者我在尝试哪些是不可能的!



谢谢!

解决方案

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


接受十进制,十六进制,以及由以下
语法给出的八进制
数字:

DecodableString:


  • 签名 opt DecimalNumeral

  • Sign opt 0x HexDigits

  • Sign opt 0X HexDigits
  • Sign opt #HexDigits

  • Sign opt 0 OctalDigits
  • >


签名:


  • -


但是在你的情况下,这并不会起作用,你的字符串已经超出了长期持有的范围。您需要 BigInteger

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

输出:


23846102773961507302322850521


对于比较,这里是 Long .MAX_VALUE


9223372036854775807



I want to convert a hex string to long in java.

I have tried with general conversion.

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

But I am getting this error message:

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

Is there any way to convert String to long in java? Or am i trying which is not really possible!!

Thanks!

解决方案

Long.decode(str) accepts a variety of formats:

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:

  • -

But in your case that won't help, your String is beyond the scope of what long can hold. You need a BigInteger:

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

Output:

23846102773961507302322850521

For Comparison, here's Long.MAX_VALUE:

9223372036854775807

这篇关于如何在java中将十六进制字符串转换为long?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆