
n進法からm進法への変換方法(10→2や2→16など)
今回は、任意の記数法同士を変換する方法を解説します。内容は高校数学(数A)の発展ですが、理屈は中学生でもわかるものだと思います。
n進法での数の表し方
n進法では、次のような規則性によって表されます。
・整数部分の第$${k}$$桁の数は$${n^{k-1}}$$がいくつあるか
・小数第$${l}$$位の数は$${\frac{1}{n^l}}$$がいくつあるか
※ただし$${n^0=1とする}$$
具体例で説明すると、たとえば10進法の12.34は
$$
12.34_{(10)}=1\cdot10^1+2\cdot10^0+3\cdot\frac{1}{10^1}+4\cdot\frac{1}{10^2}
$$
と表すことができます。これは10進法に限ったものではなく任意の記数法でも使えます。例えば2進法の10.01は
$$
10.01_{(2)}=1\cdot2^1+0\cdot2^0+0\cdot\frac{1}{2^1}+1\cdot\frac{1}{2^2}
$$
と表すことができます。$${n>10}$$のときは新しく数字を指定する(A,Bなどとする)必要が出てきますが、基本的に考え方は同じです。
この表し方を使うと、簡単にn進法を10進法の和の形で表せるので、変換も簡単にできます。
n進数→10進数の変換
まずはn進法から10進法への変換です。これは簡単で、先ほどの表し方の右辺をそのまま足すだけです。先ほどの例の$${10.01_{(2)}}$$を10進数に変換してみましょう。まずは先ほどの表し方にします。
$$
10.01_{(2)}=1\cdot2^1+0\cdot2^0+0\cdot\frac{1}{2^1}+1\cdot\frac{1}{2^2}
$$
この形にしたら次に右辺を10進法のやり方で普通に足します。
$$
1\cdot2^1+0\cdot2^0+0\cdot\frac{1}{2^1}+1\cdot\frac{1}{2^2}\\
=2+0+0+\frac{1}{4}\\
=2+0.25\\
=2.25_{(10)}
$$
これで10進数に変換できました。
10進数→n進数の変換
次に10進数→n進数の変換ですが、これは割り算を使います。やり方は下のようになります。(ただしこれは整数の時のみ)
①nで割って余りをメモしておく
②①を割る数が(n-1)以下になるまで繰り返す
③余りと最後の商を割った順番と逆順で並べて完了
例として$${35_{(10)}}$$を3進数に変換してみましょう。
$$
35\div3=11あまり2\\
11\div3=3あまり2\\
3\div3=1(あまり0)\\
最終的な商は1,余りは下から0,2,2なのでつなげると\\
35_{(10)}=1022_{(3)}
$$
n進数→m進数への変換
これは簡単で、下のような方法になります。
①n進数を10進数に変換
②①をm進数に変換
これで任意の記数法同士を変換する方法の説明は終わりです。
最後まで見ていただきありがとうございました!