ITパスポート 2012年 春期 問78
問題文
コンピュータの主記憶中にある命令やデータの格納場所を特定するために、その場所に付けられた値はどれか。
選択肢
ア:アドレス(正解)
イ:インデックス
ウ:カウンタ
エ:デコーダ
🔒 解説は解答すると表示されます
主記憶中の格納場所を特定する値はどれか【ITパスポート 解説】
正解の理由
この問題は「コンピュータの主記憶(main memory)中にある命令やデータの格納場所を特定するために、その場所に付けられた値」を問うています。主記憶とはコンピュータがプログラムやデータを一時的に保存する場所で、代表例はRAM(Random Access Memory:ランダムアクセスメモリ)です。
格納場所を「特定するために付けられた値」は、いわゆるメモリの番地です。これを指す語が選択肢の中では「アドレス」です。したがって選択肢アの「アドレス(address:記憶位置を示す番号)」が正解です。
アドレスは、メモリ上の各場所に割り振られた識別子で、ここに命令やデータが格納されます。
アドレスは、メモリ上の各場所に割り振られた識別子で、ここに命令やデータが格納されます。
解法ステップ
- 問題文のキーワードを探す:「主記憶」「格納場所を特定」「付けられた値」など。
- それぞれの選択肢の意味を簡単に思い出す:
- アドレス:記憶位置を示す番号(=番地)
- インデックス:配列などで位置を示す添え字や相対的な位置
- カウンタ:数を数える装置や値。プログラムカウンタは次の命令のアドレスを指すレジスタ
- デコーダ:信号を解読して制御信号を出す回路
- 「格納場所を特定する値」に最も直接当てはまるのは「アドレス」なので選ぶ。
この流れで迷わず選べます。
選択肢別の誤答解説
-
ア: アドレス(正解)
メモリの各位置に割り当てられた番号です。命令やデータはこの番号で参照します。 -
イ: インデックス
インデックス(index)は「添え字」や「順序番号」を意味します。配列などで要素の相対位置を表すことが多いです。メモリ全体の絶対的な番地(アドレス)とは役割が異なります。インデックスはアドレスを計算する際に使われることはありますが、単独で「主記憶の格納場所に付けられた値」を直接指す語ではありません。 -
ウ: カウンタ
カウンタ(counter)は数を数える器や値です。CPUにある「プログラムカウンタ(Program Counter)」は次に実行する命令のアドレスを保持しますが、それ自体は「格納場所に付けられた値」ではなく、命令実行の制御に使うレジスタです。問題文は格納場所そのものを特定する「値」を問うているため不正解です。 -
エ: デコーダ
デコーダ(decoder)は入力信号を解読して出力を選ぶ回路や機能です。命令の解釈やアドレス選択の一部で使われますが、値(番号)そのものを指す語ではありません。したがって誤りです。
よくある誤解
-
プログラムカウンタ(PC)=アドレスだと思う誤解
プログラムカウンタは「次に実行する命令のアドレスを保持するレジスタ」です。PC自体は「アドレスを記録する装置」であり、アドレスという概念そのものとは区別されます。 -
インデックスとアドレスを同じ意味で捉える誤解
インデックスは相対位置(添え字)であることが多く、アドレスは絶対的な番地です。プログラミングではインデックス+基準アドレスで実際のアドレスを計算します。 -
アドレスは英語の「住所」だから住所そのものだと覚えるだけにする誤解
住所のように扱えばイメージはつきますが、コンピュータでは数値(通常は2進数や16進数)で表されます。仕組み(どのように使われるか)も理解しておくと応用問題で有利です。
補足コラム
-
バイトアドレスとワードアドレス
メモリには最小単位(通常は1バイト)ごとにアドレスがつくことが多いです(バイトアドレス)。一方でCPUの幅が大きい場合はワード(CPUが一度に扱う単位)単位で考えることもあります。実際のアドレス表現はシステム設計に依存します。 -
論理アドレスと物理アドレス
OS(オペレーティングシステム:コンピュータを管理するソフト)や仮想記憶を使う場合、プログラムが見るアドレス(論理アドレス)が実際のメモリ位置(物理アドレス)と一致しないことがあります。どちらも「場所を特定する値」ですが、問題文のような基本問題では単に「アドレス」と覚えておけば十分です。
FAQ
Q. アドレスとポインタ(pointer)は同じですか?
A. ポインタは「アドレスを値として保持する変数」です。ポインタ自体はアドレスを指す役割を持ち、言語や環境によって扱い方が違います。概念としては「ポインタはアドレスを内包するもの」と考えてください。
A. ポインタは「アドレスを値として保持する変数」です。ポインタ自体はアドレスを指す役割を持ち、言語や環境によって扱い方が違います。概念としては「ポインタはアドレスを内包するもの」と考えてください。
Q. アドレスは数字ですか?16進数で表示される理由は?
A. はい、アドレスは数値です。コンピュータ内部は2進数で動作するため、2進数を読みやすく表すために16進数で表示されることが多いだけです(例: 0x1A3F)。
A. はい、アドレスは数値です。コンピュータ内部は2進数で動作するため、2進数を読みやすく表すために16進数で表示されることが多いだけです(例: 0x1A3F)。
Q. インデックスはメモリに付けられた値ではないの?
A. インデックスは位置を表す番号ですが、通常は配列の要素番号などの「相対番号」です。実際のメモリ位置(アドレス)は基準アドレスにインデックスを足して算出します。
A. インデックスは位置を表す番号ですが、通常は配列の要素番号などの「相対番号」です。実際のメモリ位置(アドレス)は基準アドレスにインデックスを足して算出します。
関連キーワード: 主記憶、アドレス、メモリ番地、ポインタ、プログラムカウンタ、デコーダ、インデックス、RAM、バイトアドレス、論理アドレス、物理アドレス

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

