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

選択肢
- アa:j ← j div 2 b:NISHIN(k) ← j mod 2
- イa:j ← j mod 2 b:NISHIN(k) ← j div 2
- ウa:NISHIN(k) ← j div 2 b:j ← j mod 2
- エa:NISHIN(k) ← j mod 2 b:j ← j div 2
正解と解説
正解:エ a:NISHIN(k) ← j mod 2 b:j ← j div 2
2進数への変換は「2で割った余りを下位桁から順に記録し、商で元の値を置き換える」ことを8回繰り返す手順である。したがってループ内では、先に j を2で割った余り(0か1)を NISHIN(k) へ格納し、その後で j を2で割った商に更新しなければならない。順序を逆にすると、記録する前に j が変わってしまい、正しい桁が得られない。またmodは0か1しか返さないので配列へ入れるのはmodの結果、jの更新に使うのはdivの結果、という役割分担も判断の手掛かりになる。
選択肢ごとの解説
- ア余りを記録する前に j を更新してしまうため、格納される桁が1桁ずれる。
- イ配列へ商を入れ、j へ余り(0か1)を代入しており、2回目以降の計算が破綻する。
- ウ配列に格納するのが商になっており、2進数の桁として意味を成さない。
- エ正解。余りを配列へ格納してから j を商で更新するので、下位桁から順に正しく求まる。
この問題は2回出題されています
- 2019年度 秋期 午前 問1(このページ)
- 2022年度 公開問題 科目A 問2
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。