我想将二进制数转换成双精度数。我有二进制字符串
1100000110011101010111011000101011011000011111111111111111111110
我想将其转换为双值。我期待以下输出。
Output:-1.2316741412499997E8
请帮我解决这个问题
我想将二进制数转换成双精度数。我有二进制字符串
1100000110011101010111011000101011011000011111111111111111111110
我想将其转换为双值。我期待以下输出。
Output:-1.2316741412499997E8
请帮我解决这个问题
您可以使用
String text = "1100000110011101010111011000101011011000011111111111111111111110";
double doubleVal = Double.longBitsToDouble(new BigInteger(text, 2).longValue());
System.out.println(doubleVal);
印刷
-1.2316741412499997E8
您不能使用 Long.parseLong 因为数字大于 Long.MAX_VALUE
您可以使用 ByteBuffer http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html来完成该任务。
这是一个例子:
public static double toDouble(byte[] bytes) {
return ByteBuffer.wrap(bytes).getDouble();
}