次の流れ図は、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 div 2 → j | j mod 2 → NISHIN (k ) |
イ | j div 2 → NISHIN (k ) | j mod 2 → j |
ウ | j mod 2 → j | j div 2 → NISHIN (k ) |
エ | j mod 2 → NISHIN (k ) | j div 2 → j |
答え エ
【解説】
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は、j mod 2 → NISHIN (k )
bは、j div 2 → j
(エ)になる。
【キーワード】
・2進数