- ベストアンサー
バイナリから実数を取得したいのですが・・・
C++にてバイナリデータから倍精度の浮動小数を取得したいと考えています。 バイナリの中にリトルエンディアン形式で倍精度の浮動小数が64ビット幅に収められています。 これをdouble型の変数に代入したいのですが、どうすれば(できれば簡単な方法で)値を代入できるでしょうか? ご教授お願いします。 データのサンプルを念のために記載させて頂きます。 B2 9C 05 DA 7D 40 6C 3F -> 3.448720745086919e-3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VC++ の場合ですと unsigned char ch[] = { 0xb2,0x9c,0x05,0xda,0x7d,0x40,0x6c,0x3f }; double *pd = (double*)ch; double d = *pd; こんな具合で dにdoubleの数値が取得できましたよ ^^
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
「簡単な方法」も何も, 「リトルエンディアン形式で倍精度の浮動小数」のフォーマットを調べて努力と根性で変換するしかないと思う. 可能なら ldexp を使えばちょっとは簡単.
質問者
お礼
回答ありがとうございました。解決しました。
お礼
ポインタのキャストだけで上手くいくなんて目からウロコです。 大変勉強させて頂きました。 丁寧な回答ありがとうございました。