次の流れ図は、10進整数j (0 < j < 100)を8けたの2進数に変換する処理を表している。
2進数の下位から順に、配列の要素NISHIN (1)からNISHIN (8)に格納される。
流れ図のa及びbに入る処理はどれか。
ここで、j div 2はj を2で割った商の制す部分、j mod 2はj を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 |
答え エ
【解説】
10進数x をn 進数に変換する場合、x をn で割った余りをn 進数の最下位のけたに入れ、x をn で割った商をさらにn で割り余りを下位から2番目のけたに、さらにn で割った商をn で割りった余りを下位から3番目のけた…と計算する。
すなわち、
x mod n → 最下位のけた
(x div n ) mod n → 下位から2番目のけた
((x div n )div n ) mod n → 下位から3番目のけた
…
である。
これを、x をj 、n を2として考えると、
aは、NISHIN (k ) ← j mod 2
bは、j ← j div 2
(エ)になる。
【キーワード】
・2進数