2進数を10進数に直すアルゴリズム
解説
ポイント
2進数を上の桁から「2倍して次の桁を足す」で10進数にする流れ図をたどる問題です。
考え方と解き方
s にいちばん上の桁を入れ,次の桁へ進むたびに s を2倍して,その桁の 0 か 1 を足します。
2倍するのは,2進数で1桁左にずれると値が2倍になるからです。
- (11010101)2 の桁を上から並べると 1,1,0,1,0,1,0,1
1桁目:s=1
2桁目(1):1×2+1=3
3桁目(0):3×2+0=6
4桁目(1):6×2+1=13
ア:5桁目(0):13×2+0=26
イ:6桁目(1):26×2+1=53
ウ:7桁目(0):53×2+0=106
- 8桁目(1):106×2+1=213 で,問題文の最後の値と一致。答えは ア 26,イ 53,ウ 106
覚えておくこと
- 2進数は上の桁から「2倍して次の桁を足す」で10進数に直せる(ホーナー法)
- 最後の値(ここでは 213)が問題文と一致するかで,計算の確かめができる
- 足す桁の 0 と 1 を取り違えると,値が 1 ずれる
出典:令和2年度 技術士第一次試験 基礎科目 I-2-5(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム