• 年度別
  • 分野別
  • キーワード
  • 検索
  • 成績を見る
  • 掲示板
  • サイト情報
  • ITパスポート試験
    令和6年 第85問


    問85

    関数 binaryToInteger は,1桁以上の符号なし2進数を文字列で表した値を引数 binaryStr で受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として"100"を受け取ると,4を返す。プログラム中のa,bに入れる字句の適切な組合せはどれか。


  • (令和6年 ITパスポート試験 第85問 テクノロジ系/アルゴリズムとプログラミング)

    解説

    (エ)
    この問題の正解率:28.1%(やや低い)

    解き方の流れ
    ① 2進数から10進数への変換法を復習
    右端(最下位ビット)が 2^0、次が 2^1、… として重みを掛け、合計します。
    例:"100" → 1×2^2 + 0×2^1 + 0×2^0 = 4

    ② a の選択
    ループ変数 i が 1 のとき → exponent = 2^(i−1) = 2^0
    よって、a = 2の(i−1)乗 が正しい。

    ③ b の選択
    結果は累積していくため、「現在の integerNum + digitNum × exponent」
    よって、b = integerNum + digitNum × exponent が正しい。


    【間違いやすいポイント】
    「(2のi乗)-1」は、例えば i=1 → 2^1 – 1 = 1(2^0ではないため桁位置がずれます)。
    累積に「乗算」を使うと、整数値が指数的に膨れ上がってしまいます(誤り)。