基数変換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進数に変換してみましょう。

 

division_1.png

 

やり方さえわかれば簡単ですね。

 

8進数や16進数でも同じように除算法が利用できます。8進数の場合は、商が8で割り切れない7以下の数値になるまで、8で割り続け、16進数の場合は、商が16で割り切れない15以下の数値になるまで、16で割り続けます。

 

division_2.png

 

division_3.png