如何在java中将负双值转换为二进制值?

Joy*_*son 2 java

以下是double值

-1.2316741412499997E8
Run Code Online (Sandbox Code Playgroud)

以下是我使用的方法:

Long.toBinaryString(Double.doubleToRawLongBits(-1.2316741412499997E8))
output: 1100000110011101010111011000101011011000011111111111111111111110
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用值2时,我得到以下输出,如下所示,这是错误的.

Long.toBinaryString(Double.doubleToRawLongBits(2.0))
output: 100000000000000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

有人会告诉我如何将负双值转换为二进制.谢谢提前.

Joa*_*son 5

我不确定你想要什么结果,但2.0结果绝对正确.

请注意,它给出的数字不是零填充,因此它似乎设置了符号位,但位设置是指数的最高位.