1

2 進数を double に変換したいのですが、2 進数の文字列があります。

1100000110011101010111011000101011011000011111111111111111111110

double値に変換したい。次の出力を期待しています。

Output:-1.2316741412499997E8

この問題を解決するのを手伝ってください

4

2 に答える 2

16

使用できます

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

プリント

-1.2316741412499997E8

数値がLong.MAX_VALUEより大きいため、Long.parseLongを使用できません。

于 2012-08-08T08:14:10.253 に答える
3

そのタスクには、ByteBufferhttp://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.htmlを使用できます。

次に例を示します。

public static double toDouble(byte[] bytes) {
     return ByteBuffer.wrap(bytes).getDouble();
}
于 2012-08-08T08:12:54.480 に答える