問題
応用情報技術者 平成29年春期 午前問21
16進数 ABCD1234 をリトルエンディアンで4バイトのメモリに配置したものはどれか。
ここで, 0~+3はバイトアドレスのオフセット値である。
0 | +1 | +2 | +3 |
12 | 34 | AB | CD |
0 | +1 | +2 | +3 |
34 | 12 | CD | AB |
0 | +1 | +2 | +3 |
43 | 21 | DC | BA |
0 | +1 | +2 | +3 |
AB | CD | 12 | 34 |
回答
0 | +1 | +2 | +3 |
34 | 12 | CD | AB |
解説
エンディアン
エンディアンとは、バイト単位のデータをメモリに記録するときの方式のことです。
エンディアン(英: endianness)は、複数のバイトなどを並べる順序の種類である。一般的な用語による表現ではバイトオーダ(英: byte order)、ないしそれを一部訳して日本語ではバイト順とも言う。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ビッグエンディアン
上位バイトから順に値を格納します。
16進数 ABCD1234 であれば、下のようになります。
0 | +1 | +2 | +3 |
AB | CD | 12 | 34 |
人間に優しい方式です。
リトルエンディアン
下位バイトから順に値を格納します。
16進数 ABCD1234 であれば、下のようになります。
0 | +1 | +2 | +3 |
34 | 12 | CD | AB |
コンピュータに優しい場合の多い方式です。
ミドルエンディアン
ビッグエンディアンとリトルエンディアンが混ざります。後付けで拡張が行われた場合などに生じます。
0 | +1 | +2 | +3 |
12 | 34 | AB | CD |