我无法将字符串中的十六进制数转换为long然后再返回。这是我正在使用的代码:
private void parseExperiment(){
String str1 = "AA0F245C";
long nr = Long.parseLong(str1, 16);
String str2 = Double.toHexString(nr);
}
我希望str2与str1相同,但是当我打印str1,nr和str2时,我得到了这个:
str1: AA0F245C
nr: 2853119068
str2: 0x1.541e48b8p31
任何人都知道如何解决这个问题?
答案 0 :(得分:26)
如果您想再次转换long
,请使用Long.toHexString
。
使用Double.toHexString
将long
转换为十六进制字符串将为您提供与double
不同的long
的正确表示。
答案 1 :(得分:6)
如果您使用Long.toHexString(nr);
,您将得到正确答案