戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

エンベデッドシステムスペシャリスト 2020年 午前2 問02


問題文

ビッグエンディアン方式を採用しているCPUが、表のようにデータが格納された主記憶の1000番地から2バイトのデータを、16ビット長のレジスタにロードしたとき、レジスタの値はどれになるか。ここで、番地及びデータは全て16進表示である。
エンベデッドシステムスペシャリスト 2020年 午前2 問02の問題画像

選択肢

ア:0001(正解)
イ:00FF
ウ:0100
エ:FF00

🔒 解説は解答すると表示されます

ビッグエンディアン方式【午前2解説】

正解の理由

ビッグエンディアン方式では、複数バイトのデータをメモリに格納するとき、最上位バイトを最も小さい番地に置きます。
番地 1000 には 00、番地 1001 には 01 が格納されています。したがって、16ビットレジスタには、番地の小さい順に 00、01 を並べた 0001 がロードされます。
よって、正しい選択肢は ア です。

解法ステップ

  1. 2バイト分の対象範囲を確認します。
    1000 番地の 00 と、1001 番地の 01 が対象です。
  2. ビッグエンディアン方式では、最小番地のバイトが上位バイトになります。
  3. 2バイトを上位・下位の順に並べます。
    上位バイトが 00、下位バイトが 01 なので、レジスタの値は 0001 です。

選択肢別の誤答解説

  • ア 0001:番地 1000 の 00 を上位バイト、番地 1001 の 01 を下位バイトとして正しく並べています。
  • イ 00FF:番地 1000 の 00 と、対象外の番地 0FFF の FF を組み合わせた値です。
  • ウ 0100:対象の2バイトは使っていますが、バイトの順序を逆にしています。これはリトルエンディアン方式での並びに相当します。
  • エ FF00:対象範囲ではない番地 0FFF の FF と、番地 0FFE の FE を取り違えた場合などに生じる誤答です。対象の2バイトからは得られません。

よくある誤解

  • ビッグエンディアンでは、メモリ上のバイトを右から読むと思い込むことがあります。実際には、最小番地のバイトがデータの上位側になります。
  • 番地やデータが16進数で表されているため、数値として計算する問題だと誤解することがあります。この問題では、各番地にある1バイトずつを正しい順序で並べます。
  • 「2バイトのデータ」とあるのに、隣接する番地ではなく、表中の別の値まで使ってしまうことがあります。まず、開始番地から連続する2番地を確認しましょう。

補足コラム

エンディアンは、複数バイトのデータをメモリに置くときのバイト順序です。
たとえば、16ビット値 1234 を格納する場合、ビッグエンディアンでは小さい番地から 12、34 の順に並びます。リトルエンディアンでは、小さい番地から 34、12 の順に並びます。値そのものではなく、メモリ上での配置順が異なります。

FAQ

Q. この問題では、なぜ番地 0FFF の FF を使わないのですか?
A. ロード開始番地は 1000 なので、読み込む2バイトは 1000 番地と、その次の 1001 番地のデータです。
Q. ビッグエンディアンでは、メモリの値を逆順に並べるのですか?
A. いいえ。小さい番地から順に読み、その先頭のバイトを上位バイトとして扱います。この問題では 00、01 の順に並びます。

関連キーワード: ビッグエンディアン、リトルエンディアン、バイト順序、主記憶、レジスタ、16進数
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について