令和6年度 ITパスポート 問85「擬似言語」の解説

テクノロジ系 ・ 擬似言語 / 2進数

関数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進数の各桁の重みは、末尾から数えてi番目なら2の(i-1)乗です。1番目が1、2番目が2、3番目が4と対応するので、aには2の(i-1)乗が入ります。整数値は各桁の数字にその重みを掛けたものを足し合わせて求めるので、bにはintegerNum + digitNum × exponentが入ります。掛け算で累積するとintegerNumの初期値0のまま変化しません。(2のi乗)-1では重みが1桁ずれてしまいます。

文章だけだと分かりにくいときは「アルゴリズムとフローチャート」を図解で見る図解と確認問題つき・登録不要

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

問題文・選択肢はIPA公開問題の原文です。解説は本サービスが独自に作成したもので、IPAの公式解説ではありません。

IPA公式PDF(問題) / IPA公式PDF(解答)

この問題をXで出題する

この問題のテーマを基礎から学ぶ

この分野の続きをアプリで解く

アプリでは公式過去問500問を本番の並びのまま解けるほか、分野別の演習や100問模試、合格準備度スコアで弱い分野と次の一歩が分かります。最初の7日間は学習記録も無料です。