长到十六进制字符串

2022-09-02 23:12:57

我在将字符串中的十六进制数字转换为长数字然后再次转换时遇到问题。以下是我正在使用的代码:

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

有人知道如何解决这个问题吗?


答案 1

使用 Long.toHexString 如果要再次转换回。long

使用 Double.toHexString 将 a 转换为十六进制字符串将为您提供与 .longdoublelong


答案 2

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