【问题标题】:Long.toBinaryString not returning expected binary string for 827.0Long.toBinaryString 未返回 827.0 的预期二进制字符串
【发布时间】:2017-03-26 02:08:15
【问题描述】:

我正在使用doubles,需要找到827.0 的二进制版本。

环顾四周是this

所以我这样做:

double myDouble = 827.0;
Long.toBinaryString(Double.doubleToRawLongBits(myDouble))

然而这又回来了:

100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000100000010001001110110000000000000000000000000000000000000000000

而不是1100111011

知道我哪里出错了吗?

【问题讨论】:

  • 开始Long.toBinaryString((long) myDouble)。您正在了解 827.0 的浮点表示,对此您的期望是错误的。
  • 啊,谢谢,这很有道理。

标签: java binary


【解决方案1】:

这应该可行:

double myDouble = 827.0;
System.out.println(Long.toBinaryString((long) myDouble));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2019-02-02
    相关资源
    最近更新 更多