過去問ぽちぽちby KKM Studio

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

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

令和6年度 問85 図1
  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
答えを見る

正解 エa:2の(i-1)乗 b:integerNum + digitNum × exponent

要点2進数の下からi桁目の重みは2の(i−1)乗

解説

2進数は、末尾(下位)から1桁目の重みが2の0乗、2桁目が2の1乗…と、i桁目の重みが2の(i−1)乗です。各桁の数字(0か1)に重みを掛けた値を順に足し合わせれば整数になるので、a:2の(i−1)乗、b:integerNum + digitNum × exponent のエが正解です。

例:“100”→ i=1:0×1、i=2:0×2、i=3:1×4 で、0+0+4 = 4。

  • ア、イ:(2のi乗)−1 はi=1で1、i=2で3となり、桁の重み(1、2、4…)にならないので誤り。
  • ウ:bで掛け算すると、初期値0に掛けるため常に0になり、各桁の値を足し合わせられないので誤り。
App

スキマ時間に、1問ずつ。
アプリ「ITパスポート 過去問ぽちぽち」

全問を正答・解説つきで収録。毎日の10問に、忘れた頃の復習が自然に混ざります。広告なし・買い切り。

App Store近日公開Google Play近日公開