過去問解きまくり研究所 ホーム

平成23年度 特別 午前 問11

コンピュータ構成要素

ビッグエンディアンに関する問題

主記憶の 1000 番地から,表のように 4 バイトの整数データが格納されている。これを 32 ビットのレジスタにロードするとき,プロセッサのエンディアンとレジスタにロードされる数値との組合せとして,正しいものはどれか。

バイトアドレスデータ
100000
100101
100202
100303
リトルエンディアンビッグエンディアン
ア0001020302030001
イ0001020303020100
ウ0203000100010203
エ0302010000010203
答えと解説を見る

✓ これが正解エ03020100 00010203

解説

小さい番地に上位を置く側が00010203になります。

分かれ目は、いちばん小さい番地に値のどちら側の端を置くか、その一点だけです。名前のとおりに覚えると取り違えません。ビッグエンディアンは大きいほうのけた、つまり上位のバイトを小さい番地に置きます。リトルエンディアンは小さいほうのけた、つまり下位のバイトを小さい番地に置きます。主記憶には、1000番地から順に00、01、02、03と並んでいます。上位のバイトを先に置く方式なら、1000番地の00が最上位ですから、レジスタには番地の順にそのまま00010203と入ります。人が数値を読み書きする順と同じ並びになるので、表を上から読んだものがそのまま答えになります。下位のバイトを先に置く方式なら、1000番地の00が最下位ですから、上位から並べ直すと番地の逆順になり、03020100と入ります。この二つを組み合わせた行が正解です。確かめの型として、先に上位を先頭に置く側の値を決め、残りをもう一方へ回すと迷いません。もう一つ注意したいのは、この並べ替えが1バイトを単位として端から端まで及ぶという点です。数バイトずつの塊を作り、その塊ごと位置を入れ替えるような読み方をすると、実際の並びとは別のものになります。

ほかの選択肢はなぜ違うのか

出典:平成23年度 特別 応用情報技術者試験 午前 問11(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)