平成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〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
始点(5, 4)から終点(9, 8)までの直線は,xが1増えるとyも1増える直線なので,x = 7 の画素は座標(7, 6)です。
1画素は16ビット = 2バイトで,メモリは1番地当たり8ビットなので,1画素に2番地を使います。
座標(7, 6)より前にある画素数は 6 × 640 + 7 = 3,847 個なので,先頭アドレスは 3,847 × 2 = 7,694 番地です。
-
ア: 3847番地
誤り。座標(7, 6)が先頭から何番目の画素か(3,847番目)を求めた値です。1画素は2番地分なので2倍する必要があります。 -
イ: 7680番地
誤り。y = 6 の行の先頭(座標(0, 6))のアドレス 6 × 640 × 2 = 7,680 番地です。x = 7 の分が加算されていません。 -
ウ: 7694番地
正しい。座標(7, 6)の画素は (6 × 640 + 7) × 2 = 7,694 番地から割り当てられています。 -
エ: 8978番地
誤り。(7 × 640 + 9) × 2 = 8,978 であり,座標(9, 7)のアドレスにあたります。x = 7 の画素(7, 6)のアドレスではありません。
答え
ウ: 7694番地
出典:平成30年度 秋期 応用情報技術者試験 午前 問20