こんにちは!ゼロイチです!
今日は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
本日もお疲れ様でした!