在java中有没有一种将双精度转换为二进制的方法

svmlkihl  于 2021-09-13  发布在  Java
关注(0)|答案(3)|浏览(300)

在java中有没有一种将double转换成二进制的方法请你用一个例子解释一下我希望输出像double 2.1=binary 10.1

tquggr8v

tquggr8v1#

你可以用 Long.toBinaryString(Double.doubleToRawLongBits(d)) ```
public class Example{

public static void main(String[] args) {
    double d = 10.1; 
    String l = Long.toBinaryString(Double.doubleToRawLongBits(d));
    System.out.println(l);
}

}

输出将如下所示

100000000100100001100110011001100110011001100110011001100110011

ny6fqffe

ny6fqffe2#

对结果使用double.double或awlongbits(double),然后使用long.tobinarysting(long):

double d = 0.4;
System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d)));

来源

rt4zxlrg

rt4zxlrg3#

你对双工如何工作/存储的想法不太正确。我发现这个网站对“IEEE754二进制浮点表示法”的解释非常详细和易懂。
简而言之:浮点数存储为一个公式,可用于计算精确值。它不会存储为“点之前的数字和点之后的数字”。
不管怎样,也许你可以详细说明为什么你需要这个来获得更多有用的答案。

相关问题