2024年(令和6年) ITパスポート 午前 問85

関数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進数

キーワードの解説

戻る 一覧へ 次へ