問題

選択肢
- 1result + int(binary の (length - i + 1)文字目の文字)
- 2result + int(binary の i文字目の文字)
- 3result × 2 + int(binary の (length - i + 1)文字目の文字)
- 4result × 2 + int(binary の i文字目の文字)
正解
4. result × 2 + int(binary の i文字目の文字)
詳しい解説を見る解説を閉じる
解説
2 進数を先頭(最上位ビット)から 1 文字ずつ読み、それまでの結果を 2 倍して新しいビットを足していく方式(ホーナー法)で 10 進数に変換できる。for は i を 1 から length まで増やすので、i 文字目は左端=上位ビットから順に処理される。1 桁進むごとに既存の値の重みが 2 倍になるため、result × 2 +(新しいビット)を繰り返せばよい。「10010」では、0→1→2→4→9→18 と更新され 18 が得られる。エ(result × 2 + int(binary の i文字目))が正しい。ウは末尾から読む式で結果が反転し、ア・イは 2 倍を行わないため桁の重みを表現できない。よってエが正解。(出典: 令和6年度 基本情報技術者試験 科目B 問2)
一問一答
科目A 180問+科目B 60問