【问题标题】:converting double to binary in java [duplicate]在java中将double转换为二进制[重复]
【发布时间】:2013-12-22 13:56:46
【问题描述】:

我正在生成 double 类型的数字序列,例如 0.9913963644564902 0.0341175990344773 0.13181105852355268 0.45773616980747556 我必须将它转换为java中的二进制表示。

【问题讨论】:

  • “转换为二进制”是什么意思?你期望这个例子的输出是什么?
  • 您可能想要使用 DataOutputStream。阅读 javadoc。
  • 作者很可能想要二进制格式的实际浮点数(无限精度)。我认为他不希望将 IEEE 8 字节的所有字段都作为二进制整数。
  • @afk5min:但这不是他/她可以拥有的,因为大多数有限的十进制扩展都有无限的二进制扩展。

标签: java binary double


【解决方案1】:

这将对您有所帮助。我已经尝试使用您输入的双精度值之一 - 0.9913963644564902

 public static void main(String[] args){
        double d = 0.9913963644564902;
        System.out.println("0b"+Long.toBinaryString(Double.doubleToRawLongBits(d)));
    }

输出将是

run:
0b11111111101111101110011000010011011110010101101101100001110011
BUILD SUCCESSFUL (total time: 0 seconds)

【讨论】:

  • 你认为作者为什么会想要一个二进制 INTEGER 作为结果?
  • 谢谢它的工作。它也适用于负数吗
  • 是的,对于 -0.9913963644564902,输出将是运行:0b101111111110111110111001100001001101111001010110110110000110011 BUILD SUCCESSFUL0011 构建成功0011秒0011 秒>i>
  • 是否需要映射序号和二进制。去地图
  • 是的,当然可以!
猜你喜欢
  • 1970-01-01
  • 2011-09-15
  • 2014-09-23
  • 2018-06-05
  • 2013-02-10
  • 2018-04-29
  • 2020-06-22
  • 2015-10-27
  • 2014-03-28
相关资源
最近更新 更多