平成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増やす。

出典:平成30年度 秋期 応用情報技術者試験 午前 問20
- ア3847番地
- イ7680番地
- ウ7694番地
- エ8978番地
正解:ウ
解説
始点(5,4)から終点(9,8)への直線はx,yともに1ずつ増加するため,x=7のときy=6です。1画素当たり16ビット(2バイト)なので,アドレス=(y×640+x)×2で計算できます。(6×640+7)×2=(3840+7)×2=3847×2=7694番地となります。
選択肢ごとの解説
- ア誤り。3847は(y×640+x)の値そのものであり,1画素2バイトの掛け算を忘れた場合の値です。
- イ誤り。7680は6×640×2=7680で,x=7の分の加算を忘れた場合の値です。
- ウ正しい。(6×640+7)×2=7694番地が,x=7の画素に割り当てられたメモリアドレスの先頭です。
- エ誤り。8978は,yの値を7として計算した場合など,直線の対応関係を誤った場合に得られる値です。