2
バイナリ形式とアスキー形式で演奏する練習の一環として、整数49をCプログラムを使用してファイルに書きました。バイナリでは、その4バイト表現は、ASCIIでテキストエディタでの逆エンディアン
00000000 00000000 00000000 00110001
で、最初の3つのバイトは、(^@
と表示)NULLバイトであり、最後のバイトは文字1
あります。これをvimで開いたとき、3バイトのnullバイトが続くと予想され、次に1
が続きました。代わりに、私はそれが逆のことを見た、すなわち、1
に続いて3つのヌルバイトが続きます。それはなぜそうですか?
整数をCコードで読み戻すと、メモリ内のエンディアンとレイアウトに関係なく、正しく読み込まれます。私は、テキストエディタがそれを読んだとき、メモリにレイアウトされたバイトを表示し、エンディアンを知らないと思います。 – jitihsk
異なるエンディアンのマシンで整数を読み取ると、異なる結果が得られます。そのため、ネットワークバイトオーダーが定義されているため、アーキテクチャ間で相互運用可能です。 – Hauleth