エンディアンとは、メモリのアクセス単位が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 |