パスポイ

令和6年度85テクノロジ系

関数 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
  • a: (2 の i乗) - 1  b: integerNum × digitNum × exponent
  • a: (2 の i乗) - 1  b: integerNum + digitNum × exponent
  • a: 2 の (i - 1) 乗  b: integerNum × digitNum × exponent
  • a: 2 の (i - 1) 乗  b: integerNum + digitNum × exponent
正解と解説を見る

正解

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

2進数の各桁は、末尾(最下位)から数えてi番目の桁が2の(i-1)乗の重みを持つため、aには「2 の (i-1) 乗」が入ります。また各桁の値(digitNum)にその桁の重み(exponent)を掛けた値を積算していくので、bには掛け算した値を足し込む「integerNum + digitNum × exponent」が入ります。

解いて競うと、毎月上位3名にAmazonギフト券5,000円分

無料登録すると過去問演習のスコアが月間ランキングに記録されます。1回10問・スマホでサクッと。