ハードウェア(全104問中37問目)
No.37解説へ
次の方式で画素にメモリを割り当てる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番地
広告
解説
まず、番地を求める対象である座標(7, 6)の画素が格納される位置を考えます。座標(7, 6)は8列7行目に位置し、メモリには上の行から順に格納されていくため、先頭から数えた順番は、
640×6+8=3848(個目)
メモリの幅は8ビットで1画素は16ビットですので、1つの画素には2つの番地が割り当てられます。格納される順番ごとにメモリアドレスの先頭を考えてみると、1番目の画素はメモリの0番地、2番目は2番地、3番目は4番地、…、641番目(2行目先頭画素)は1280番地 になります。つまり、n番目の画素が割り当てられるメモリアドレスの先頭は「(n-1)×2番地」で表せます。
よって、先頭から3848番目のメモリアドレスの番地は、
(3848-1)×2=7694(番地)
したがって「ウ」が正解です。
640×6+8=3848(個目)
メモリの幅は8ビットで1画素は16ビットですので、1つの画素には2つの番地が割り当てられます。格納される順番ごとにメモリアドレスの先頭を考えてみると、1番目の画素はメモリの0番地、2番目は2番地、3番目は4番地、…、641番目(2行目先頭画素)は1280番地 になります。つまり、n番目の画素が割り当てられるメモリアドレスの先頭は「(n-1)×2番地」で表せます。
よって、先頭から3848番目のメモリアドレスの番地は、
(3848-1)×2=7694(番地)
したがって「ウ」が正解です。