10進数から2進数への変換

10進数を2進数に変換する鉄則アルゴリズム「 2で割り続け、その余りを下位桁から順に並べる 」処理を流れ図に当てはめる問題です。 2進数の各桁の数字は「現在の数を2で割った余り」になります。 したがって、配列 NISHIN(k) には余りである j mod 2 を代入します(これが空欄a)。 余りを求めた後、次の桁の計算に進むために、現在の数 $j$ を「2で割った商」に更新する必要があります。したがって、 j には商である j div 2 を代入します(これが空欄b)。よって、正解はエとなります。 j=13 の例では、NISHIN(1)〜(8) に 1, 0, 1, 1, 0, 0, 0, 0 が入り、上位から読むと 00001101(=13)になります。 k a:NISHIN(k)←j mod 2 b:j←j div 2 1 1 6 2 0 3 3 1 1 4 1 0 5 0 0 6 0 0 7 0 0 8 0 0

次の流れ図は、10進整数 (0<j<100)(0 < j < 100) を8桁の2進数に変換する処理を表している。2進数は下位桁から順に、配列の要素 NISHIN(1) から NISHIN(8) に格納される。流れ図のa及びbに入れる処理はどれか。ここで、j div 2はjを2で割った商の整数部分を、j mod 2はjを2で割った余りを表す。

問題画像
出典基本情報技術者試験 サンプル問題 科目A 問2

a

b

ア

j ← j div 2

NISHIN(k) ← j mod 2

イ

j ← j mod 2

NISHIN(k) ← j div 2

ウ

NISHIN(k) ← j div 2

j ← j mod 2

エ

NISHIN(k) ← j mod 2

j ← j div 2