如何在java中将二进制数转换为double

时间:2012-08-08 08:09:56

标签: java

我想将二进制数转换为double。我有二进制字符串

1100000110011101010111011000101011011000011111111111111111111110

我想将其转换为double值。我期待以下输出。

Output:-1.2316741412499997E8

请帮我解决这个问题

2 个答案:

答案 0 :(得分:14)

您可以使用

String text = "1100000110011101010111011000101011011000011111111111111111111110";
double doubleVal = Double.longBitsToDouble(new BigInteger(text, 2).longValue());
System.out.println(doubleVal);

打印

-1.2316741412499997E8

您不能使用Long.parseLong,因为该数字大于Long.MAX_VALUE

答案 1 :(得分:2)

您可以使用ByteBuffer http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html执行该任务。

以下是一个例子:

public static double toDouble(byte[] bytes) {
     return ByteBuffer.wrap(bytes).getDouble();
}