関数binaryToIntegerは、1桁以上の符号なしの2進数を文字列で表した値を引数binaryStrで受け取り、その値を整数に変k何した結果を戻り値とする。 例えば、引数として“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
| a | b | |
| ア | (2のi乗) ー 1 | integerNum×digitNum×exponent |
| イ | (2のi乗) ー 1 | integerNum + digitNum×exponent |
| ウ | 2の(i - 1)乗 | integerNum×digitNum×exponent |
| エ | 2の(i - 1)乗 | integerNum + digitNum×exponent |
答え エ
【解説】
binaryStrの末尾1番目の値は1の位なのでaに入るのは2の(i - 1)乗になり、末尾からi番目の値はdigitNum×exponentになる。
したがってbに入るのは(i - 1)番目までの値に1番目の値を加えるのでintegerNum + digitNum×exponentになる。
[プログラム]
〇整数型:binaryToInteger(文字列型:binaryStr)
整数型:integerNum, digitNum, exponent, i
integerNum ← 0
for (iを1からbinaryStrの文字数まで1ずつ増やす)
digitNum ← binaryStrの末尾からi番目の文字を整数型に変換した値
// 例:文字“1”であれば整数値1に変換
exponent ← 2の(i - 1)乗
integerNum ← integerNum + digitNum×exponent
endfor
return integerNum
| a | b | |
| エ | 2の(i - 1)乗 | integerNum + digitNum×exponent |
【キーワード】
・2進数