平成30年秋期試験問題 午前問20
問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増やす。
- 3847番地
- 7680番地
- 7694番地
- 8978番地
広告
解説
設問の図で黒く塗りつぶされている画素のうち、x=7の座標は(7, 6)であり、図中において8列7行目に位置します。メモリには上の行の画素から順に格納されていくこと、1行には640個の画素があることを踏まえると、座標(7, 6)が格納される位置は先頭から数えて、
640×縦6+横8=3,848番目
図よりメモリの各番地のサイズ8ビット、設問より1画素は16ビットなので、1つの画素を2つの番地を使って表すことになります。格納される順番ごとにメモリアドレスの先頭を考えてみると、1番目の画素はメモリの0番地、2番目は2番地、3番目は4番地、…、641番目(2行目先頭画素)は1,280番地 になります。これを一般化すると、n番目の画素が割り当てられるメモリアドレスの先頭番地は「(n-1)×2」の式で求めることができます。
以上より、座標(7, 6)=3,848番目の画素のメモリアドレスの先頭番地は、
(3,848-1)×2=7,694番地
したがって「ウ」が正解です。
640×縦6+横8=3,848番目
図よりメモリの各番地のサイズ8ビット、設問より1画素は16ビットなので、1つの画素を2つの番地を使って表すことになります。格納される順番ごとにメモリアドレスの先頭を考えてみると、1番目の画素はメモリの0番地、2番目は2番地、3番目は4番地、…、641番目(2行目先頭画素)は1,280番地 になります。これを一般化すると、n番目の画素が割り当てられるメモリアドレスの先頭番地は「(n-1)×2」の式で求めることができます。
以上より、座標(7, 6)=3,848番目の画素のメモリアドレスの先頭番地は、
(3,848-1)×2=7,694番地
したがって「ウ」が正解です。
広告