2024年 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進数

キーワードの解説
  • 2進数
    数値の表現方式で、出現する数字は0と1であり、10進数の0、1、2、3、4は2進数で0、1、10、11、100と表現できる。
    2進数のメリットは、OnとOffで表現できるため、コンピュータの中で使用しやすい。
    ただ、けた数が多くなっていまうため(10進1024が10けたになる)、人が考えるときには2進数4けたをまとめて16進数(0〜9、A〜F)で扱うことが多い。

もっと、「2進数」について調べてみよう。

戻る 一覧へ 次へ