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件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

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

正解

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

解説

2進数の右から i 桁目は 2の(i-1)乗 の重みを持つ.整数値は各桁の値×重みの総和で求めるため,a は 2の(i-1)乗,b は加算式 (累積加算) となる.

選択肢ごとの解説

  • .誤り. a の (2のi乗)-1 は重み式として誤り,b も乗算ではなく加算が正しい.
  • .誤り. a の重み式が誤りで,2進数右から i 桁目の重みは 2の(i-1)乗が正しい.
  • .誤り. b は累積加算 integerNum + digitNum × exponent が正しい.
  • .正しい. a=2の(i-1)乗,b=累積加算で各桁値×重みを総和する.

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