エンディアン

エンディアンとは、メモリのアクセス単位が1バイトである場合において、複数バイトのデジタルデータをメモリに保存する際の連続したメモリアドレスへの格納順序のことです。

例えば、プロセッサのデータバスのバス幅が4バイトであれば、最大4バイト単位でデジタルデータを扱えます。

このとき、あるデジタルデータが16進数でA1 72 8C BFだった場合、この4バイトをどの順番で連続した4つのメモリアドレスに保存するのかがエンディアンです。

ビッグエンディアン

あるデジタルデータが16進数でA1 72 8C BFだった場合、A1 72 8C BFの順番で連続した4つのメモリアドレスに保存することをビッグエンディアンと言います。

例えば、以下は、適当な連続した4つのメモリアドレスに、ビッグエンディアンでデジタルデータ0xA1728CBFを保存した場合のメモリの構造です。

メモリアドレス メモリの中身
0x0000D3A0 0xA1
0x0000D3A1 0x72
0x0000D3A2 0x8C
0x0000D3A3 0xBF

リトルエンディアン

あるデジタルデータが16進数でA1 72 8C BFだった場合、BF 8C 72 A1の順番で連続した4つのメモリアドレスに保存することをリトルエンディアンと言います。

例えば、以下は、適当な連続した4つのメモリアドレスに、リトルエンディアンでデジタルデータ0xA1728CBFを保存した場合のメモリの構造です。

メモリアドレス メモリの中身
0x0000D3A0 0xBF
0x0000D3A1 0x8C
0x0000D3A2 0x72
0x0000D3A3 0xA1