関数binaryToIntegerは、1桁以上の符号なし2進数を文字列で表した値を引数binaryStrで受け取り、その値を整数に変換した結果を戻り値とする。例えば、引数として“100”を受け取ると、4を返す。プログラム中のa, bに入れる字句の適切な組合せはどれか。 〔プログラム〕 ○整数型: binaryToInteger(文字列型: binaryStr)  整数型: integerNum, digitNum, exponent, i  integerNum ← 0  for (iを1からbinaryStrの文字数まで1ずつ増やす)   digitNum ← binaryStrの末尾からi番目の文字を整数型に変換した値 // 例: 文字"1"であれば整数値1に変換   exponent ← a   integerNum ← b  endfor  return integerNum

2進数の各桁に2の累乗の重みを掛けて足し合わせる

ITパスポート2024年度 秋期85/アルゴリズムとプログラミング / アルゴリズム

ab
(2のi乗)-1integerNum × digitNum × exponent
(2のi乗)-1integerNum + digitNum × exponent
2の(i-1)乗integerNum × digitNum × exponent
2の(i-1)乗integerNum + digitNum × exponent

選択肢

正解と解説

正解: a:2の(i-1)乗 b:integerNum + digitNum × exponent

2進数の末尾からi番目の桁の重みは2の(i−1)乗です。各桁の数字にその重みを掛けた値を順に足し合わせれば10進数になるため、aには2の(i−1)乗、bには累計に掛け算の結果を加える式が入ります。掛け算で累積すると初期値0のまま変化しないため誤りです。

選択肢ごとの解説

出典:令和6年度 秋期 ITパスポート試験 問85(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。