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


『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- エ
解説
2進数→10進数変換は、「各桁の値 × 2の重み(20, 21, 22…)」を足し合わせることで求めます。
このプログラムは binaryStr の末尾(最下位ビット)から順に見ていくため、末尾から i 番目の桁の重みは 2(i-1) になります。
また、10進数の合計値を作るので、各桁の寄与分(digitNum × exponent)は加算していきます。
a:
末尾から i 番目の桁の重みは 2(i-1) なので、
exponent ← 2 の (i−1) 乗 が入ります。
b:
integerNum は「これまでの合計値」なので、
integerNum ← integerNum + digitNum × exponent が入ります。
このプログラムは binaryStr の末尾(最下位ビット)から順に見ていくため、末尾から i 番目の桁の重みは 2(i-1) になります。
また、10進数の合計値を作るので、各桁の寄与分(digitNum × exponent)は加算していきます。
a:
末尾から i 番目の桁の重みは 2(i-1) なので、
exponent ← 2 の (i−1) 乗 が入ります。
b:
integerNum は「これまでの合計値」なので、
integerNum ← integerNum + digitNum × exponent が入ります。