平成23年度特別 応用情報技術者試験 午前 問11
主記憶の1000番地から,表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき,プロセッサのエンディアンとレジスタにロードされる数値との組合せとして,正しいものはどれか。

- ア リトルエンディアン 00010203/ビッグエンディアン 02030001
- イ リトルエンディアン 00010203/ビッグエンディアン 03020100
- ウ リトルエンディアン 02030001/ビッグエンディアン 00010203
- エ リトルエンディアン 03020100/ビッグエンディアン 00010203
解答・解説を見る
正解:エ
AI解説
ビッグエンディアンはアドレスの若い方から順にバイトを並べた通りにそのまま数値の上位バイトから読む方式、リトルエンディアンはその逆順(アドレスの若い方が数値の下位バイト)で読む方式である。同じメモリ上のバイト列に対し、両エンディアンで読み込んだ数値は互いにバイト単位で逆順の関係になる。 ア: リトル00010203/ビッグ02030001。両者がバイト順の単純な逆転関係になっておらず、エンディアンの定義と矛盾するため誤り。 イ: リトル00010203/ビッグ03020100。両者は逆転関係にあるが、若いアドレスから00,01,02,03の順に格納されたデータをそのまま連結して読むのがビッグエンディアンであるため、ビッグエンディアンの値は00010203となるべきで、この組合せは逆になっており誤り。 ウ: リトル02030001/ビッグ00010203。リトルエンディアン側の値がビッグエンディアン側の値の単純な逆転になっておらず誤り。 エ: リトルエンディアン03020100/ビッグエンディアン00010203の組合せ。アドレスの若い方から00,01,02,03の順に格納されたバイト列を、ビッグエンディアンはそのまま連結して00010203、リトルエンディアンは逆順に連結して03020100と解釈する関係と整合し正解。 💡 ビッグエンディアン=「人間が読む順(上位バイトが若いアドレス)」、リトルエンディアン=「その逆(下位バイトが若いアドレス)」と覚える。同じメモリ内容でも解釈するプロセッサによって数値が完全に逆順になる点が引っかけどころ。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。