平成23年度特別 応用情報技術者試験 午前 問11

分野:コンピュータ構成要素(プロセッサ・メモリ・キャッシュ・入出力・IoTデバイス)|実際に出題されたIPA過去問題

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

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  リトルエンディアン 00010203/ビッグエンディアン 02030001
  2.  リトルエンディアン 00010203/ビッグエンディアン 03020100
  3.  リトルエンディアン 02030001/ビッグエンディアン 00010203
  4.  リトルエンディアン 03020100/ビッグエンディアン 00010203
解答・解説を見る

正解:エ

AI解説

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

出典:平成23年度 特別 応用情報技術者試験 午前 問11 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「コンピュータ構成要素」分野の攻略ポイント

プロセッサ・メモリ・キャッシュ・入出力・IoTデバイスが対象です。実効アクセス時間やCPI(命令あたりクロック数)の計算は毎年の定番で、公式さえ覚えれば短時間で確実に1問確保できます。

コンピュータ構成要素の攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(コンピュータ構成要素(プロセッサ・メモリ・キャッシュ・入出力・IoTデバイス))の過去問