web-dev-qa-db-ja.com

od追加の値を出力します

4バイトのfloatを含むバイナリファイルがあります。 odを使用してこれらのフロートを印刷したいと思います。 ただし、odは、最初の位置に1つの追加値を出力します。ここで何が起こっているのですか?

ファイルは次のようになります。

xxd test | head -1

0000000:932a 6541 7cdf 6b41 6c7e 7141 d7797641。* eA | .kAl〜qA.yvA

odはこれを出力します:

cat test | od -f -An -v -w4 | head -2

   14,322894
   14,742062

最初に出力される値(14.32)は ない ファイルの最初の値。 2番目に出力される値(14.74)は、ファイルからの実際の最初の値です。私はいくつかの16進エディタで次のことを確認しました

932a 6541

14.74206(またはそれに非常に近い値)です。では、odはどこから追加の値(14.32)を取得していますか?これは、他のすべてのオプションが省略されている場合にも発生します。

cat test | od -f | head -2

0000000 14,322894 14,742062 15,093365 15,404746

0000020 15,652825 15,938543 16,25734 16,616056

1

odは正しいです。期待した出力は、選択したもの以外の浮動小数点値を示した2つの16進エディターに基づいています。 @schily、最初の4バイトは実際には14.32を表しているため、odが正しいことを指摘していただきありがとうございます。

0