倍精度の数値を10進数に変換しようとしています。たとえば、倍精度でバイトとしての数値22は次のとおりです。
[0] 0
[1] 0
[2] 0
[3] 0
[4] 0
[5] 0
[6] 54
[7] 64
今、私はこれらの値を再び22に変換しようとします:
ByteBuffer buffer = ByteBuffer.wrap(data);
long l = buffer.getLong();
long b = Double.doubleToLongBits(l);
しかし、結果は完全に間違っています:4.6688606E18
この数は何ですか?助けてください、私は完全に混乱しています!
倍精度のIEEE標準754に準拠:
doubleとして格納される値には、次の表に示すようにフォーマットされた64ビットが必要です。
63符号(0 =正、1 =負)
62から52の指数、1023でバイアス
数1の51から0の分数f
では、倍精度を数値に変換して22を再び取得するにはどうすればよいですか?これらの答えはすべて間違っています