• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:工作機械データの可読性)

工作機械データの可読性

このQ&Aのポイント
  • 工作機械で入力した数値と保存したデータが表示が異なる問題について
  • 保存されているデータはバイナリデータであり、10進数を16進数に変換しても分からない
  • 工作機械メーカの人に聞いてもバイナリエディタで変更はできると答えてくれたが、現在の状態では解決できない

質問者が選んだベストアンサー

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

IEEE 754 倍精度浮動小数形式 (リトルエンディアン) のようですね. > 1 は F0 3F, > 10 は 24 40, > 10.5 は 25 40, そうではなく,8バイト固定長なので,その前に 00 00 00 00 00 00 が付くはずです. ↓たまたま,以前自作した浮動小数ダンププログラムがあったので試してみました. D:\> dmpfloat 1 10 10.1 10.4 10.5 10.6 20 30 +1 = +.1E+1 +10 = +.101E+4 +10.1 = +.10100001100110011001100110011001100110011001100110011E+4 +10.4 = +.10100110011001100110011001100110011001100110011001101E+4 +10.5 = +.10101E+4 +10.6 = +.10101001100110011001100110011001100110011001100110011E+4 +20 = +.101E+5 倍精度浮動小数     | 単精度浮動小数 3F F0 00 00 00 00 00 00 | 3F 80 00 00 | +1 40 24 00 00 00 00 00 00 | 41 20 00 00 | +10 40 24 33 33 33 33 33 33 | 41 21 99 9A | +10.1 40 24 CC CC CC CC CC CD | 41 26 66 66 | +10.4 40 25 00 00 00 00 00 00 | 41 28 00 00 | +10.5 40 25 33 33 33 33 33 33 | 41 29 99 9A | +10.6 40 34 00 00 00 00 00 00 | 41 A0 00 00 | +20 40 3E 00 00 00 00 00 00 | 41 F0 00 00 | +30 > この様なデータの書式や変換の方法 例えばC言語を使うなら,そのバイナリデータをそのまま fread() で double 型変数に読み込みます.リトルエンディアンのマシンならこれで OK. ビッグエンディアンのマシンならばその変数のバイト順を逆転させます. 浮動小数点数 http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0 IEEE754 Floating Point Number http://msugai.fc2web.com/java/binary.html

sigtom
質問者

お礼

早速の回答ありがとうございます。 そのような表記があるとは知りませんでした、 すぐにこの方法で制作し始めようと思います。 制作言語はVBもしくはVBスクリプトで制作しようと思ってます。 また分からないことがあると思いますので今後も、 よろしくお願いします。 助かりました。 本当にありがとうございます。

関連するQ&A