令和6年度 春期 午前 問22
コンピュータ構成要素
メモリのアドレスの先頭
次の方式で画素にメモリを割り当てる 640×480 のグラフィック LCD モジュールがある。始点(5,4)から終点(9,8)まで直線を描画するとき,直線上の x=7 の画素に割り当てられたメモリのアドレスの先頭は何番地か。ここで,画素の座標は(x,y)で表すものとする。
〔方式〕・メモリは 0 番地から昇順に使用する。・1 画素は 16 ビットとする。・座標(0,0)から座標(639,479)までメモリを連続して割り当てる。・各画素は,x=0 から x 軸の方向にメモリを割り当てていく。・x=639 の次は x=0 とし,y を 1 増やす。
〔図〕左にメモリを縦に並べた図。1 行の幅は 8 ビットで,上から 0 番地・1 番地・2 番地・3 番地…z 番地と続く。0 番地と 1 番地の 2 行をまとめた矢印が画素(0,0)を指し,2 番地と 3 番地の 2 行をまとめた矢印が画素(1,0)を指す。右は画素を丸で並べた格子で,x は左から 0,1,2…15…639,y は上から 0,1,2…9…479。黒丸が(5,4)(6,5)(7,6)(8,7)(9,8)に斜めに並び,(5,4)に「始点」,(9,8)に「終点」の矢印が付く。
- ア3847
- イ7680
- ウ7694
- エ8978
答えと解説を見る
✓ これが正解ウ7694
解説
画素の通し番号に 1 画素 2 番地を掛けます。
設問は、指定された割当ての方式のもとで、直線上のある画素が置かれた先頭の番地を求めさせています。軸になるのは、その画素が先頭から何番目かという数と、画素一つあたり何番地を使うかという数を、分けて出すことです。まず対象の画素を決めます。始点から終点まで横に 4 進む間に縦も 4 進むので、直線の傾きは 1 であり、横が 7 のときの縦は 6 になります。次に通し番号を数えます。横方向へ割り当て、右端の次で縦が一つ増えるので 1 行は 640 画素であり、縦が 0 から 5 までの 6 行で 3,840 画素、同じ行の左から 7 画素を足して 3,847 番目です。最後に一つあたりの番地数を掛けます。1 画素は 16 ビット、図のメモリは 1 番地が 8 ビットなので、1 画素は 2 番地を使います。したがって 3,847 に 2 を掛けた 7,694 番地が答えになります。
ほかの選択肢はなぜ違うのか
- ア3847:先頭から何番目の画素かを数えたところで止めた値です。この装置では 1 画素に 16 ビットを割り当てており、図のメモリは 1 行が 8 ビットなので、通し番号をそのまま番地として読むことはできません。
- イ7680:目的の画素が並ぶ行の左端、つまり横の座標が 0 の位置の番地です。同じ行を右へ 7 画素進んだ分の 14 番地が足されていないので、直線が通る位置には届きません。
- エ8978:縦を 7、横を 9 として計算したときに出てくる値で、直線上にない点(9,7)を数えた形です。設問が指定しているのは横の座標が 7 の画素なので、終点の 9 を横に当てる読み方は成り立ちません。
出典:令和6年度 春期 応用情報技術者試験 午前 問22(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)