※本情報は解説作成時点のもので、閲覧時点では法改正等により情報が変更になっている場合がございます。あらかじめご理解いただければ幸いです。
正解は「D.a:2の(i-1)乗 b.integerNum + digitNum × exponent」です。
binaryToInteger関数は、文字列で表された2進数を整数に変換する関数で、各桁の値に2のべき乗を掛けて合計することで計算します。
この記事では、ITパスポート試験(令和6年度)テクノロジ系第30問「2進数を整数に変換するプログラム」について、試験対策の観点からわかりやすく解説します。
プログラムの仕組み
整数値 = Σ(各桁の値 × 2^(桁位置-1))
手順:
1. 文字列 binaryStr の末尾から1桁ずつ取り出す
2. 文字を整数に変換 → digitNum
3. その桁の重み(exponent) = 2^(i-1)
4. integerNum に digitNum × exponent を加算
5. すべての桁で繰り返す
他の選択肢との違い
- (2のi乗)-1:末尾桁とのインデックスずれにより誤り
- integerNum × digitNum × exponent:各桁を加算せず掛け算してしまう誤り
- integerNum + digitNum × exponent:正しい(Dの選択肢)
2進数変換では、各桁の値に対応する2のべき乗を掛けて合計するのが基本です。
問われているポイント
この問題では、文字列として与えられた2進数を整数に変換するアルゴリズムの理解が問われています。桁の取り扱いと2のべき乗の関係に注意しましょう。
気を付けてほしい点(勘違いしやすいポイント)
- 末尾から数える桁位置は i-1 を使う
- 掛け算ではなく加算で合計する
補足
この考え方は、バイナリ文字列を整数に変換する際の基本的なアルゴリズムであり、プログラム問題でよく出題されます。
ITパスポート試験での出題パターン
テクノロジ系では、アルゴリズムや数値変換の基礎知識を問う問題が出題されます。文字列操作やループ処理の考え方を整理しておきましょう。
この知識が使われている問題
まとめ
- 2進数文字列を整数に変換するには、各桁に対応する2のべき乗を掛けて合計する
- 末尾から数える桁の指数は i-1 を用いる
- 加算で各桁の値を合計することが重要