长到HEX字符串

Chi*_*age 6 java string hex converter long-integer

我在将String中的十六进制数转换为long然后再返回时遇到问题.这是我正在使用的代码:

private void parseExperiment(){
    String str1 = "AA0F245C";
    long nr = Long.parseLong(str1, 16);
    String str2 = Double.toHexString(nr);
}
Run Code Online (Sandbox Code Playgroud)

我希望str2与str1相同,但是当我打印str1,nr和str2时,我得到这个:

str1: AA0F245C
nr: 2853119068
str2: 0x1.541e48b8p31
Run Code Online (Sandbox Code Playgroud)

谁知道如何解决这个问题?

小智 29

使用Long.toHexString,如果你要转换的long再次回来.

long使用a 转换为十六进制字符串Double.toHexString将为您提供与a double的不同的正确表示long.

  • 神圣的****!我完全错过了!我怎么那样搞砸了!? (2认同)
  • 我必须知道 **toHexString** 只是转换为无符号值 (2认同)

Mac*_*iej 7

如果您使用,Long.toHexString(nr);您将得到正确的答案