なぜ小数点値を誤って計算するのですか?

なぜ小数点値を誤って計算するのですか?

この質問は、この質問に対するenzotibの回答に関連しています。バイナリファイルで2バイトを見つけて値を増やし、Bashを使って置き換える方法は?

これは2バイトを16進値に変換します。

$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002

ただし、これは10進値を提供する必要があります。

echo -n $'\x1b\x1f' | od -tu2
0000000  7963
0000002

ただし、16進値を10進数に変換すると、次のようになります。

$ printf "%d" 0x1b1f
6943

なぜそんなことですか?od間違った10進数出力を使用していますか?

答え1

あなたは走ってodいますリトルエンディアン方式マシン。

>>> 0x1f1b
7963

関連情報