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

平成30年度 秋期 午前 問20

コンピュータ構成要素

アドレスの先頭

次の方式で画素にメモリを割り当てる 640 × 480 のグラフィック LCD モジュールがある。座標(x,y)で始点(5,4)から終点(9,8)まで直線を描画するとき,直線上の x = 7 の画素に割り当てられたメモリのアドレスの先頭は何番地か。

〔方式〕
・メモリは 0 番地から昇順に使用する。
・1 画素は 16 ビットとする。
・座標(0,0)から座標(639,479)まで連続して割り当てる。
・各画素は,x = 0 から x 軸の方向にメモリを割り当てていく。
・x = 639 の次は x = 0 とし,y を 1 増やす。

〔図〕メモリと画素の対応

  メモリ(1 番地 = 8 ビット幅)        画素の並び(x は右へ・y は下へ)
    ┌──────┐                        x → 0 1 2 3 … 639
    │ 0 番地 │ ┐                   y  0 ○○○○ …
    │ 1 番地 │ ┘ ← 画素(0,0)       1 ○○○○ …
    │ 2 番地 │ ┐                      …
    │ 3 番地 │ ┘ ← 画素(1,0)        4 ●        ← 始点(5,4)
    │   ⋮    │                        5   ●
    │ z 番地 │                        6     ●     ← ここが x = 7
    └──────┘                        7       ●
      ←8 bit→                        8         ● ← 終点(9,8)
答えと解説を見る

✓ これが正解ウ7694 番地

解説

通し番号3,847に1画素2番地を掛けた7,694番地です。

直線上の特定の画素について、割り当てられたメモリの先頭アドレスを求める問いです。二段構えで解きます。まず座標を確定し、次に通し番号からアドレスに直します。始点と終点を見ると、横方向も縦方向も四だけ増えています。つまり傾きが一の直線で、横が一進むごとに縦も一進みます。始点から順に並べていくと、横が七のときの縦は六だと決まります。次に画素の通し番号を出します。一行は640画素で、縦は0行目から数えます。縦が六の行の先頭までに640に六を掛けた3,840画素があり、そこからさらに七つ進んだところですから、通し番号は3,847です。最後にアドレスへ直します。図から一つの番地は8ビット、設問から一画素は16ビットですから、一画素は二つの番地を使います。3,847に二を掛けて7,694番地です。小さいところで式を確かめます。左上の画素は通し番号が0なので0番地から始まり、その右隣は通し番号が1なので2番地から始まります。図に書かれた並びと一致しました。見分けの軸は、画素の個数と番地の数が一対一ではないことです。一画素が何ビットか、一番地が何ビットかを読み取ってから、掛ける数を決めます。この形の式は、一行の画素数に縦を掛けて横を足し、一画素あたりの番地数を掛ける、と一本にまとめられます。

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

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

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