本文へ移動

基本情報技術者試験 · 学習ガイド

2008年度 秋期 午前の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2008年度 秋期 午前の概要
30:00

問題番号から選ぶ

10進数から2進数への基数変換アルゴリズム

基礎理論 · 基数変換 / 流れ図 / アルゴリズム

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

解答・解説を表示

解答

エ

解説

まず要点:10進数を2進数にするには、2で割った余りを下の位から順に取り出します。1回の処理で、先に「余り」を取り出して配列に入れ、そのあとで「商」を次の値に更新します。順番を逆にすると、元の数の余りが計算できず、正しい2進数になりません。

解き方

  1. 今の値jを2で割った余り(j mod 2)を求め、配列NISHIN(k)に入れて最下位のけたを決めます。
  2. 次に、今の値jを2で割った商(j div 2)を新しいjにして、次のけたの計算に進みます。
選択肢 ア不正解
aで先に商をjに入れると、次の余りが元の数ではなく商の余りになり、正しい2進数にならないから誤りです。
選択肢 イ不正解
各けたに入るのは余りなのに、商を配列NISHIN(k)に入れており、数の表し方に反するから誤りです。
選択肢 ウ不正解
余りを変数jに、商を配列に入れていて、けたの値と次の計算に使う値が逆になっているから誤りです。
選択肢 エ正解
今のjを2で割った余りを配列に入れ、そのあと商を新しいjにする、正しい順番だから正しいです。

覚えるポイント

  • 10進数から2進数への変換は「2で割った余りを下位桁から順に記録し、商を次の値とする」操作を繰り返す。

間違えやすいところ

  • 商を先に変数へ入れてしまい、余りの値がずれる間違いをしてしまうこと。

出題の前提:基本情報技術者試験 シラバス(基数変換、流れ図と基本制御構造)

出典:IPA(PDF保管先:基本情報技術者試験ドットコム)『2008年度 秋期 午前』
IPA公式問題冊子(第三者保管の保存版) p.3 ↗(cdn.fe-siken.com)

2008年度 秋期 午前

参照した公式資料

IPA(PDF保管先:基本情報技術者試験ドットコム)が公開した2008年度 秋期 午前の問題・解答資料です。