平成27年度 春期 午前 問21
コンピュータ構成要素
バイトのメモリに配置したもの
16 進数 ABCD1234 をリトルエンディアンで 4 バイトのメモリに配置したものはどれか。ここで,0 〜 +3 はバイトアドレスのオフセット値である。
| 0 | +1 | +2 | +3 | |
|---|---|---|---|---|
| ア | 12 | 34 | AB | CD |
| イ | 34 | 12 | CD | AB |
| ウ | 43 | 21 | DC | BA |
| エ | AB | CD | 12 | 34 |
- ア12 34 AB CD
- イ34 12 CD AB
- ウ43 21 DC BA
- エAB CD 12 34
答えと解説を見る
✓ これが正解イ34 12 CD AB
解説
下位のバイトから順に、小さいアドレスへ置きます。
設問は、16進数のABCD1234をリトルエンディアンで4バイトのメモリに配置した形を選ばせています。四つの並びは、どの大きさを単位にしてひっくり返したかだけが違うので、そこだけを見ます。エンディアンが決めるのはバイトの順序であって、1バイトの中身である16進2桁は動きません。まず値を2桁ずつに切ると、ABが最上位のバイト、34が最下位のバイトになります。リトルエンディアンは小さい方の端、すなわち下位のバイトを小さい方のアドレスに置く並べ方ですから、オフセット0には34が入り、以下12、CD、ABと続きます。よって34 12 CD ABと並ぶものが当てはまります。確かめるのは両端の2か所だけで足ります。オフセット0が最下位の34であり、かつオフセット+3が最上位のABであるという二つが同時に成り立つ並びは一つしかありません。ビッグエンディアンはこの逆で、上位のバイトから先に置きます。
ほかの選択肢はなぜ違うのか
- ア12 34 AB CD:2バイトの語をひとまとまりとみなし、その二つの語の位置だけを入れ替えた形です。語の内側にあるバイトはもとの順のままなので、返す作業が途中で止まっています。
- ウ43 21 DC BA:16進の1桁、つまり4ビットの単位まで逆にした形で、もとの文字列を末尾からそのまま読んだ並びになっています。返す単位が細かすぎて、桁まで動かしてしまっています。
- エAB CD 12 34:書かれたとおりの順で、どこも入れ替えていない並びです。上位の端を先に置く方式にあたるので、小さい方の端を先に置くという指定とちょうど反対を向いています。
出典:平成27年度 春期 応用情報技術者試験 午前 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)