基本情報技術者試験

n進数を10進数へ!!

こんにちは!ゼロイチです!

今日はn進数(例えば2進数、8進数、16進数)を10進数にする方法です!

初めに「桁の重み」について知っておく必要があります!

桁の重み

桁の重みというのは、数値の各桁それぞれの値です!

まずは分かりやすい10進数から見ていきましょう!

145

一番左の桁はなんと言いますか?

「100」の位!そう、それが桁の重みです!?

したがって、真ん中の4の桁の重みは「10」(10の位)、

一番右の5の桁の重みは「1」(1の位)になります!

こんな感じで小数も見ていきましょう!

0.368

もう想像はつきますかね、、

小数第一位の3の桁の重みは「0.1」(1/10の位)、

6の桁の重みは「0.01」(1/100の位)、

8の桁の重みは「0.001」(1/1000の位)になります!

整理すると以下のようになります。

10進数における桁の重みは、各桁の位である

つまり、

整数部ではX桁目の数値の桁の重みは10のX-1乗になり(10x-1

小数部ではY桁目の数値の桁の重みは10の-Y乗になる(10-Y

※整数部分は1桁目が0なので注意を!

それでは「2進数」の場合で考えてみましょう!

2進数はどういった数値か覚えていますか??

そう!ゼロイチからできた数値でしたね!!

例えば、10.01

整数部分の「1」の桁の重みは何でしょうか?

10進数同様の「10」(←101)ではありません!

これはあくまで「10進数の世界」のお話。

今は「2進数の世界」のお話なので、

先ほどの「1」の桁の重みは21で『2』になり、

隣の「0」は20で『1』が桁の重みになります!

小数部も同様に考えて、

小数点右の「0」は2-1で『0.5または1/2』が桁の重みになり、

その隣の「1」は2-2で『0.25または1/4』が桁の重みになります!

これらを応用すれば「8進数の世界」、「16進数の世界」の桁の重み大丈夫でしょうか!

ポイント

n進数の桁重みは、

整数部ではX桁目の数値の桁の重みはnのX-1乗になり(nx-1

小数部ではY桁目の数値の桁の重みはnの-Y乗になる(n-Y

n進数を10進数の世界へ

桁の重みについて理解できたあなたなら本題の「n進数を10進数」にするのはとても簡単です!

ポイント

n進数を10進数にするには、

n進数の各けたの数値桁の重みかけたもののを合計すればいい!

とりあえず問題を解いてみましょう。

■2進数の1100.001を10進数にする

各けたの数値が0の部分は桁の重みに0をかけると0であるから、各けたの1の部分の合計を求めればいい。

23+22+2-3 = 8+4+0.125 = 12.125

 

■8進数の627.34を10進数にする

全ての桁数が0では無いので重みに各桁の数値をかけてあげる必要がある。

6×82 + 2×81 + 7×80 + 3×8-1 + 4×8-2 = 384 + 16 + 7 + 0.375 + 0.0625 = 407.4375

 

■16進数の5DF.A3を10進数にする

8進数同様に、全ての桁数が0では無いので重みに各桁の数値をかけてあげる必要がある。

5×162 +13×161 +15×160 +10×16-1 +3×16-2 = 1280 + 208 + 15 + 0.625 + 0.1875 +0.01171875 = 1503.63671875

 

本日もお疲れ様でした!

-基本情報技術者試験