エンディアン

問題

応用情報技術者 平成29年春期 午前問21

16進数 ABCD1234 をリトルエンディアンで4バイトのメモリに配置したものはどれか。
ここで, 0~+3はバイトアドレスのオフセット値である。

0+1+2+3
1234ABCD
0+1+2+3
3412CDAB
0+1+2+3
4321DCBA
0+1+2+3
ABCD1234

回答

0+1+2+3
3412CDAB

解説

エンディアン

エンディアンとは、バイト単位のデータをメモリに記録するときの方式のことです。


エンディアン: endianness)は、複数のバイトなどを並べる順序の種類である。一般的な用語による表現ではバイトオーダ: byte order)、ないしそれを一部訳して日本語ではバイト順とも言う。


出典: フリー百科事典『ウィキペディア(Wikipedia)』

ビッグエンディアン

上位バイトから順に値を格納します。

16進数 ABCD1234 であれば、下のようになります。

0+1+2+3
ABCD1234

人間に優しい方式です。

リトルエンディアン

下位バイトから順に値を格納します。

16進数 ABCD1234 であれば、下のようになります。

0+1+2+3
3412CDAB

コンピュータに優しい場合の多い方式です。

ミドルエンディアン

ビッグエンディアンとリトルエンディアンが混ざります。後付けで拡張が行われた場合などに生じます。

0+1+2+3
1234ABCD