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

【答え】エ
【解説】
この問題は、2進数の文字列を整数(10進数)に変換するプログラムの穴埋め問題です。
例で確認:「100(イチゼロゼロ)」を変換する
まず、問題文で例として挙げられている“100″で確認してみましょう。
2進数”100“は、10進数で4になります。
1×22 + 0×21 + 0×20(2の2乗が1個+2の1乗が0個+2の0乗が0個)
=4 + 0 + 0
=4
つまり、
・文字列の末尾から見て、右端( i=1のとき) → 2⁰倍
・その1つ左(i=2のとき) → 2¹倍
・さらに左( i=3のとき) → 2²倍
空欄aに入るのは?
- i=1 のとき 2⁰、
- i=2 のとき 2¹、
- i=3 のとき 2² …
としたいので、aに入るべき式は「2 の (i – 1) 乗」となります。
空欄bに入るのは?
毎回の10進数の値を合計する処理なので、bに入るべき式は「integerNum + digitNum × exponent」となります。
以上より、正解はエ.となります。


※わからない人は時間をかけずに、すぐに他の問題に移りましょう。