電子書籍の厳選無料作品が豊富!

C++にてバイナリデータから倍精度の浮動小数を取得したいと考えています。
バイナリの中にリトルエンディアン形式で倍精度の浮動小数が64ビット幅に収められています。
これをdouble型の変数に代入したいのですが、どうすれば(できれば簡単な方法で)値を代入できるでしょうか?
ご教授お願いします。

データのサンプルを念のために記載させて頂きます。
B2 9C 05 DA 7D 40 6C 3F -> 3.448720745086919e-3

A 回答 (2件)

VC++ の場合ですと



unsigned char ch[] = { 0xb2,0x9c,0x05,0xda,0x7d,0x40,0x6c,0x3f };
double *pd = (double*)ch;
double d = *pd;

こんな具合で dにdoubleの数値が取得できましたよ ^^
    • good
    • 1
この回答へのお礼

ポインタのキャストだけで上手くいくなんて目からウロコです。
大変勉強させて頂きました。
丁寧な回答ありがとうございました。

お礼日時:2011/01/18 21:57

「簡単な方法」も何も, 「リトルエンディアン形式で倍精度の浮動小数」のフォーマットを調べて努力と根性で変換するしかないと思う. 可

能なら ldexp を使えばちょっとは簡単.
    • good
    • 0
この回答へのお礼

回答ありがとうございました。解決しました。

お礼日時:2011/01/17 02:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!