java转换二进制/本地/十六进制双值

Posted

技术标签:

【中文标题】java转换二进制/本地/十六进制双值【英文标题】:java convert binary/ocal/hex double values 【发布时间】:2013-09-17 08:11:49 【问题描述】:

我有一个二进制/八进制/十六进制格式的双精度值,并希望将它们相互转换。我可以用这样的整数值来做到这一点

  Long l = Long.valueOf(value, FORMAT_FROM); //FORMAT_FROM -> 2 || 8 || 16
  //and then 
  Long.toHexString(l) //or
  Long.toBinaryString(l) //or
  Long.toOctalString(l)  

十进制值11.13 应该是(用计算器检查):

  13.102436561   //Octal
  1011.001000011 //Binary
  B.2147AE148  //Hex

有任何想法或提示如何到达那里吗?

【问题讨论】:

【参考方案1】:

Long 只是一个 64 位有符号 整数,不接受小数值。除了Double,做同样的事情:

  Double d = Double.valueOf(value, FORMAT_FROM); //FORMAT_FROM -> 2 || 8 || 16
  //and then 
  Double.toHexString(d) //or

遗憾的是二进制和八进制不能直接使用。

【讨论】:

Double.toBinaryStringDouble.toOctalString 不存在!? @wasp256 那两种方法呢? 上面写着Cannot resolve method toBinaryString(java.lang.double)` @wasp256 遗憾的是Double 只提供toHexString,有什么理由需要二进制和八进制吗? 不知道它只提供那个,这就是我迷路的原因并在 SO 上提问

以上是关于java转换二进制/本地/十六进制双值的主要内容,如果未能解决你的问题,请参考以下文章

java里怎样把文件转换成二进制?

Java十进制与其他进制相互转换

Java十进制与其他进制相互转换

Java 二进制与十六进制转换

java任意进制转换

十六进制转换十进制(JAVA版)