翻一番我想二进制数转换成double.I有如何转换二进制数在Java
1100000110011101010111011000101011011000011111111111111111111110
我想把它转换成double值二进制字符串。我期待着以下输出。
Output:-1.2316741412499997E8
请帮我解决这个问题
翻一番我想二进制数转换成double.I有如何转换二进制数在Java
1100000110011101010111011000101011011000011111111111111111111110
我想把它转换成double值二进制字符串。我期待着以下输出。
Output:-1.2316741412499997E8
请帮我解决这个问题
您可以使用字节缓冲区http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html该任务。
下面是一个例子:
public static double toDouble(byte[] bytes) {
return ByteBuffer.wrap(bytes).getDouble();
}
您可以使用
String text = "1100000110011101010111011000101011011000011111111111111111111110";
double doubleVal = Double.longBitsToDouble(new BigInteger(text, 2).longValue());
System.out.println(doubleVal);
打印
-1.2316741412499997E8
因为数量比龙更大的不能使用的Long.parseLong。 MAX_VALUE
+1和恭喜100K :) – 2012-08-08 08:16:15
非常感谢Peter Lawrey。 – Sumit 2012-08-08 08:18:48
@JigarJoshi干杯。在Java的第五名。 ;) – 2012-08-08 08:23:39
你能演示吗如何? (并且使用Java 7 Javadoc作为Java 5.0是EOL) – 2012-08-08 08:14:51
这是否会产生预期的数字? – 2012-08-08 08:29:23