在java中有没有一种将double转换成二进制的方法请你用一个例子解释一下我希望输出像double 2.1=binary 10.1
tquggr8v1#
你可以用 Long.toBinaryString(Double.doubleToRawLongBits(d)) ```public class Example{
Long.toBinaryString(Double.doubleToRawLongBits(d))
public static void main(String[] args) { double d = 10.1; String l = Long.toBinaryString(Double.doubleToRawLongBits(d)); System.out.println(l); }
}
输出将如下所示
100000000100100001100110011001100110011001100110011001100110011
ny6fqffe2#
对结果使用double.double或awlongbits(double),然后使用long.tobinarysting(long):
double d = 0.4; System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d)));
来源
rt4zxlrg3#
你对双工如何工作/存储的想法不太正确。我发现这个网站对“IEEE754二进制浮点表示法”的解释非常详细和易懂。简而言之:浮点数存储为一个公式,可用于计算精确值。它不会存储为“点之前的数字和点之后的数字”。不管怎样,也许你可以详细说明为什么你需要这个来获得更多有用的答案。
3条答案
按热度按时间tquggr8v1#
你可以用
Long.toBinaryString(Double.doubleToRawLongBits(d))
```public class Example{
}
100000000100100001100110011001100110011001100110011001100110011
ny6fqffe2#
对结果使用double.double或awlongbits(double),然后使用long.tobinarysting(long):
来源
rt4zxlrg3#
你对双工如何工作/存储的想法不太正确。我发现这个网站对“IEEE754二进制浮点表示法”的解释非常详细和易懂。
简而言之:浮点数存储为一个公式,可用于计算精确值。它不会存储为“点之前的数字和点之后的数字”。
不管怎样,也许你可以详细说明为什么你需要这个来获得更多有用的答案。