ITパスポート試験
令和6年 第85問
問85
関数 binaryToInteger は,1桁以上の符号なし2進数を文字列で表した値を引数 binaryStr で受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として"100"を受け取ると,4を返す。プログラム中のa,bに入れる字句の適切な組合せはどれか。
(令和6年 ITパスポート試験 第85問 テクノロジ系/アルゴリズムとプログラミング)
解説
(エ)
この問題の正解率:28.1%(やや低い)
この問題の正解率: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ではないため桁位置がずれます)。
累積に「乗算」を使うと、整数値が指数的に膨れ上がってしまいます(誤り)。
選択中のリスト
令和6年テクノロジ系過去問一覧