修了試験 2020-12-13実施分 基本情報技術者試験 問1
次の流れ図は,10進整数j(0<j<100)を8桁の2進数に変換する処理を表している。 2進数は下位桁から順に,配列の要素NISHIN(1)からNISHIN(8)に格納される。 流れ図のa及びbに入れる処理はどれか。 ここで,j div 2はjを2で割った商の整数部分を,j mod 2はjを2で割った余りを表す。

正答4
解説
正解は4です。 10進数を2で割り続け、その余りを下位桁から並べる「2進変換」の手順を流れ図にした問題です。 流れ図では、kを1から8まで1ずつ増やしながら、aとbの処理を8回繰り返します。 各回で「余りを格納する」「jを商に更新する」の順に処理すれば、下位桁から順に求まります。 【選択肢別解説】 1:× aでjを先に商へ更新してしまうため、その回の余り(最下位ビット)を取り出す前に情報が失われます。 正しくは、余りを格納してから商に更新する順番です。 2:× aでjを余り(0か1)に置き換えるので、次の回以降は上位の桁を求められません。 bで格納する商もほぼ0になり、2進数の各桁になりません。 3:× NISHIN(k)に商を格納しているので、0か1の桁の値になりません。 さらにbでjを余りに置き換えるため、変換を続けられません。 4:○ aでjを2で割った余りをNISHIN(k)に格納し、bでjを2で割った商に更新します。 たとえばj=6なら、NISHIN(1)=0、NISHIN(2)=1、NISHIN(3)=1、残りは0となり、00000110が得られます。 【ポイント】 10進数から2進数への変換は「2で割った余りを下から並べる」が基本です。 流れ図の空欄問題では、具体的な小さい数で1回ずつたどると確実に判定できます。まとめて解く
修了試験 2020-12-13実施分を通しで解く(80問)→