ITパスポート令和6年 問85

問85

関数 binaryToInteger は,1桁以上の符号なし2進数を文字列で表した値を引数 binaryStr で受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として"100"を受け取ると,4を返す。プログラム中のa,bに入れる字句の適切な組合せはどれか。

〔プログラム〕
85_1.png/image-size:517×273
  • 85_2.png/image-size:505×154

            

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズムとプログラミング

正解

解説

2進数の各桁と10進数は下図のように対応しています。
85.png/image-size:433×106
関数のfor文内では、引数 binaryStr の末尾から1文字ずつ順番に処理を行っていくことがわかります。設問で例として挙げられている"100"であれば、
  • i=0 末尾からi番目は0 ⇒ 20×0=0
  • i=1 末尾からi番目は0 ⇒ 21×0=0
  • i=2 末尾からi番目は1 ⇒ 22×1=4
上記の合計である4を返すという流れになります。つまり、20×0+21×0+22×1 を行うプログラムになっていれば良いわけです。

aについて〕
2進数の末尾からi桁目は、10進数の2i-1であるため、空欄aには2を(i-1)乗した値を使っている2の(i-1)乗が当てはまります。

bについて〕
式中の×と+の違いだけです。戻り値である integerNum は、各桁の10進表現を合計したものであるためが当てはまります。

したがって適切な組合せは「エ」です。
© 2009-2024 ITパスポート試験ドットコム All Rights Reserved.

Pagetop