ITパスポート試験 ITパスポート 2024年 (令和6年) 問85: 関数binaryToIntegerは,1桁以上の符号なし2進数を文字列で表した値を引数binaryStrで受け取り,その値を整数に変換した結果を戻り値とする。例

←
ITパスポート 2024年 (令和6年)
Q 8585 / 100
関数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
ab
ア(2のi乗)-1integerNum × digitNum × exponent
イ(2のi乗)-1integerNum + digitNum × exponent
ウ2の(i-1)乗integerNum × digitNum × exponent
エ2の(i-1)乗integerNum + digitNum × exponent
この問の正解率:59.86%(563件)

解説

ITパスポート 2024年 (令和6年) 問85「関数binaryToIntegerは,1桁以上の符号なし2進数を文字列で表した値…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約60%です。

正解

エ. a=2の(i-1)乗, b=integerNum + digitNum × exponent

正答率 59.9%(563人中 337人が正解)

問題の解説

2進数の文字列では、末尾から数えてi番目の桁の重みは である。そこで、exponentに2の(i-1)乗を代入し、桁の値digitNumに重みを掛けた値を、これまでの合計integerNumに足していく。例えば「100」では、i=3のときに が加わり、4になる。

選択肢ごとの解説

  • ア(2のi乗)-1は、i=1で1、i=2で3、i=3で7となり、2進数の桁の重みにならない。さらに、integerNumに掛けると、初期値が0なので結果は常に0になる。
  • イ足し合わせる形は正しいが、(2のi乗)-1は1、3、7、…となり、桁の重みにならない。「100」の場合も、4ではなく7になってしまう。
  • ウ重みの式は正しいが、integerNumに掛けると、初期値が0なので結果は常に0になる。足し合わせる必要がある。
  • エ正しい。桁の重みは2の(i-1)乗で、桁の値に重みを掛けた値をintegerNumに足していけば、2進数の値が求まる。

ITパスポート 2024年 (令和6年) の過去問一覧に戻る・問85

ITパスポート試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

ITパスポート試験 合格.dev を App Store でダウンロード