トップ回答者
バイナリを10進数に変換するには?

質問
-
プログラミング初心者のため上手な表現ができないかと思いますがご了承ください。
素材の寸法を収めたバイナリファイルが手元にあり、これをもとに集計プログラムを作りたいと考えています。
バイナリは単精度浮動小数点型(IEEE 754)であることがわかりました。
IEEE754仕様にそって実際に手計算で10進に直してみると思った数値が求まります。
そこで質問の本題ですが、
バイナリ文字列をSingle型の変数へ代入する関数のようなものはあるのでしょうか?
やはり手計算したようなコードを書いて求めたものを代入するしかないのでしょうか?
みなさん、宜しくお願いします。
回答
-
外池と申します。
要するに、.Net Frameworkにおいては、浮動小数点数の内部表現はIEEE754に準拠しているので、標準に準備されているメソッドで問題なく変換可能だと思います。
ただし、一点だけご注意ください。
Windowsは標準でリトルエンディアン形式であり、.Net Frameworkについてこれを前提に動作しますが、ソフトウェアによってはビッグエンディアン形式でファイルに書き込まれている場合もあります。
単精度浮動小数点数は、4バイトのバイナリーで表現されますが、仮に、B1、B2、B3、B4だとしましょう。これが、ファイル上でも、B1、B2、B3、B4の順に書かれているか、もしかるすと、逆順のB4、B3、B2、B1になっているか、よくご確認ください。
-
すべての返信
-
外池と申します。
要するに、.Net Frameworkにおいては、浮動小数点数の内部表現はIEEE754に準拠しているので、標準に準備されているメソッドで問題なく変換可能だと思います。
ただし、一点だけご注意ください。
Windowsは標準でリトルエンディアン形式であり、.Net Frameworkについてこれを前提に動作しますが、ソフトウェアによってはビッグエンディアン形式でファイルに書き込まれている場合もあります。
単精度浮動小数点数は、4バイトのバイナリーで表現されますが、仮に、B1、B2、B3、B4だとしましょう。これが、ファイル上でも、B1、B2、B3、B4の順に書かれているか、もしかるすと、逆順のB4、B3、B2、B1になっているか、よくご確認ください。
-