ITパスポート ラボ

学習の画面へ

令和6年度 問85

2 進数文字列を整数に変換するプログラム

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

関数 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
  1. ア a: (2 の i 乗) − 1,b: integerNum × digitNum × exponent
  2. イ a: (2 の i 乗) − 1,b: integerNum + digitNum × exponent
  3. ウ a: 2 の (i − 1) 乗,b: integerNum × digitNum × exponent
  4. エ a: 2 の (i − 1) 乗,b: integerNum + digitNum × exponent
正解と解説を見る

正解: エ

ポイント

2 進数の各桁には、右から順に 2⁰, 2¹, 2², … の重みがあります。

例: "100" のとき

  1. i = 1: 0 × 2⁰ = 0 → 合計 0
  2. i = 2: 0 × 2¹ = 0 → 合計 0
  3. i = 3: 1 × 2² = 4 → 合計 4
広告

「アルゴリズムとプログラミング」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)

広告