令和2年度 基礎科目の一覧へ

令和2年度・基礎科目 I-2-5

2進数を10進数に直すアルゴリズム

問題文をPDFで見る

解説

ポイント

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(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム