SkillStack
テクノロジ系22 / 80問

応用情報技術者試験 令和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 増やす。

応用情報技術者試験 令和6年度 春期 午前 問22の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

始点(5、4)から終点(9、8)までの直線では、xとyがそれぞれ1ずつ増えます。直線上の画素は(5、4)、(6、5)、(7、6)、(8、7)、(9、8)となるので、x=7の画素は(7、6)です。

1行には640画素があり、座標は0から始まります。(7、6)より前には、完成した6行分と7画素分があるので、画素単位の位置は、6×640+7=3,847です。1画素は16ビット=2バイトであり、図では1番地に8ビットずつ格納されます。したがって、先頭アドレスは3,847×2=7,694番地となり、ウが正解です。

アの3,847は誤りです。これは(7、6)の画素番号に相当しますが、1画素が2バイトであることを反映していません。

イの7,680は誤りです。これは6×640×2で求めたy=6の行の先頭、すなわち(0、6)のアドレスです。x=7の14バイト分が不足しています。

エの8,978は誤りです。これは(7×640+9)×2で求められる(9、7)のアドレスであり、対象の(7、6)ではありません。

【ポイント】 横幅がW画素、1画素がBバイトなら、座標(x、y)の先頭アドレスは(y×W+x)×Bです。 座標が0始まりであることと、ビット数を8で割ってバイト数に直すことを忘れないようにします。

出典:令和6年度 春期 応用情報技術者試験 午前 問22
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める