【问题标题】:Long to HEX string长到 HEX 字符串
【发布时间】:2015-08-12 07:46:12
【问题描述】:

我无法将字符串中的十六进制数字转换为长整数,然后再转换回来。这是我正在使用的代码:

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

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

【问题讨论】:

  • ...为什么要用Double.toHexString() 解析long

标签: java string hex converter long-integer


【解决方案1】:

如果您想再次将long 转换回来,请使用Long.toHexString

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

【讨论】:

  • 天哪!我完全错过了!我怎么搞成这样的!?
  • 我必须知道 toHexString 只是转换为无符号值
【解决方案2】:

如果你使用Long.toHexString(nr);你会得到正确答案

【讨论】:

  • 天哪!我完全错过了!我怎么搞成这样的!?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2017-02-17
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
相关资源
最近更新 更多