ITパスポート模擬試験~令和6年度【問85】~

関数 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」となります。

以上より、正解はエ.となります。

間違えた人はこちらで復習

離散数学1~2 進数の表現と基数変換の方法~ アルゴリズムとプログラミング2~擬似言語~

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