基数変換2 桁の重みと除算法
「桁の重み」を理解しよう!
桁の重みとは、各桁の単位のことです。
10進数の「100の位」「10の位」「1の位」など、「~の位」を桁の重みといいます。「重み」と言われるとなんだか身構えてしまいますが、普段から使っている「~の位」だと思えば、さほど難しくないですね。
ここで、「桁の重み」=「~の位」と、数字の関係を考えてみましょう。
ここに10進数の215という数字があります。この数字はどのように成り立っているのでしょうか。
215の「100の位」は2、「10の位」は1、「1の位」は5です。それぞれの位の値を使って数式にすると、
(2×100)+(1×10)+(5×1)=215
となります。
つまり、数は、各桁の数値にその桁の重みを掛け、それを足したもので表しているんですね。
では、各位の数値、すなわち桁の重みである「100」「10」「1」を、10進数の10を使って表すとどうなるか、というと、
100=102
10=101
1=100
これを、215の数式にあてはめると、
(2×102)+(1×101)+(5×100)=215
となります。
これが、すべての桁の重みの計算の基になります。
上の式は10進数だから、100、101、102、...という桁の重みを使用しました。これが2進数だったら? そうです。20、21、22、23、...が桁の重みとなります。同じように8進数ならば、80、81、82、...が、16進数ならば、160、161、162、...が桁の重みです。
この桁の重みは、2進数、8進数、16進数の値を10進数に変換するときに使用します。
では、2進数から10進数への基数変換をしてみましょう。
2進数から10進数への基数変換は桁の重みを使用する!
2進数の10110を10進数に変換します。
10110は5桁の数字ですね。2進数ですから、桁の重みは20、21、22、23、...を使用します。10進数の215を計算したときと同じように、右端の1桁目は20、桁があがるごとに21、22、...と桁が大きくなります。
では計算してみましょう。
(1×24)+(0×23)+(1×22)+(1×21)+(0×20)
=(1×16)+(0×8)+(1×4)+(1×2)+(0×1)
=16+0+4+2+0
=22
2進数の10110を10進数の22に変換できました。
桁の重みを使用して10進数に変換する問題を解いてみよう!
それでは、実際に出題された問題を解いてみましょう。
16進数を10進数に変換する問題です。16進数のA~Fの値を計算するときは、10進数に置き換えることがポイントです。
平成24年秋 問79
16進数のA3は10進数で幾らか。
ア 103 イ 153 ウ 163 エ 179
正解は...
正解 ウ
16進数の桁の重みを使用して、計算式にすると、
(A×161)+(3×160)
ですが、Aのままでは計算できません。16進数のAは、10進数に置き換えて計算します。Aは、9の次の値ですので、10進数に置き換えると10ですね。
(10×161)+(3×160)=(10×16)+(3×1)=160+3=163
したがって、ウの163が正解です。
16進数のA~Fは、10進数の10~15に置き換えられることを覚えておきましょう。
除算法をマスターしよう!
桁の重みを使って2進数から10進数への変換はできましたね。では、10進数から2進数に変換するときはどうするのでしょうか。
10進数から2進数に変換するときは、除算法を利用します。除算法は、10進数の数値を、商(割り算の答え)が1になるまで、2で割り続け、余りを順番に並べる手法です。
それでは、10進数の123を除算法で2進数に変換してみましょう。
やり方さえわかれば簡単ですね。
8進数や16進数でも同じように除算法が利用できます。8進数の場合は、商が8で割り切れない7以下の数値になるまで、8で割り続け、16進数の場合は、商が16で割り切れない15以下の数値になるまで、16で割り続けます。