2 進数を double に変換したいのですが、2 進数の文字列があります。
1100000110011101010111011000101011011000011111111111111111111110
double値に変換したい。次の出力を期待しています。
Output:-1.2316741412499997E8
この問題を解決するのを手伝ってください
2 進数を double に変換したいのですが、2 進数の文字列があります。
1100000110011101010111011000101011011000011111111111111111111110
double値に変換したい。次の出力を期待しています。
Output:-1.2316741412499997E8
この問題を解決するのを手伝ってください
使用できます
String text = "1100000110011101010111011000101011011000011111111111111111111110";
double doubleVal = Double.longBitsToDouble(new BigInteger(text, 2).longValue());
System.out.println(doubleVal);
プリント
-1.2316741412499997E8
数値がLong.MAX_VALUEより大きいため、Long.parseLongを使用できません。
そのタスクには、ByteBufferhttp://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.htmlを使用できます。
次に例を示します。
public static double toDouble(byte[] bytes) {
return ByteBuffer.wrap(bytes).getDouble();
}