令和6年度 問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
| 選択肢 | a | b |
|---|---|---|
| ア | (2のi乗)−1 | integerNum × digitNum × exponent |
| イ | (2のi乗)−1 | integerNum + digitNum × exponent |
| ウ | 2の(i−1)乗 | integerNum × digitNum × exponent |
| エ | 2の(i−1)乗 | 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
先に解説を見る
正解エ
a:2の(i − 1)乗 / b:integerNum + digitNum × exponent
解説
この問題のポイント
2進数は、各桁の値×その桁の重みを全て足すと整数に変換できます。右端から重みは1・2・4・8…となり、右からi番目は2^(i-1)です。右端が2⁰=1であることに注意します。
空欄に当てはめると
各桁について「桁の値×重み」を計算し、それまでの合計integerNumへ加えます。
例えば100なら、右から0×1、0×2、1×4です。
合計は0+0+4=4となります。
正解:エ

続けて練習して、学習記録を残そう。
同じ分野の別の問題を解く同じ分野の問題
関連する用語
編集・確認:kakoloop · 編集方針
公開日:
内容更新:
問題・解説の誤りを報告する