【基本】n進法の小数

ここでは、小数を $n$ 進法で表す方法を見ていきます。

【広告】

10進法の小数

【基本】n進法では、10進法以外に、2進法などを紹介しました。また、10進法で書かれた整数を $n$ 進法に変換する方法を【基本】n進法への変換(整数)で見ました。

$n$ 進法では、整数だけでなく小数も表すことができます。 $n$ 進法での小数について考える前に、10進法の小数をもう一度考え直してみましょう。

整数を $n$ 進法に変換するとき、10進法の整数を位によって分解しました。例えば、 5678 であれば、\[ 5\times 10^3+6\times 10^2+7\times 10^1+8\times 10^0 \]となります。この $10^k$ を $n^k$ に変えて、 $n$ 進法の整数を考えました。

これと同じように分解してみます。 0.567 という小数を考えましょう。この小数第一位の 5 は、 0.1 が5つある、ということですね。他の桁も同じように考えれば、整数のときを真似て、次のように書けることがわかるでしょう。\[ 5\times \frac{1}{10^1}+6\times \frac{1}{10^2}+7\times \frac{1}{10^3} \]こう書けば、 $n$ 進法の小数はどう書けるか、想像がつくでしょう。

n進法の小数

例えば、5進法で書かれた $0.213_{(5)}$ が、10進法ではどんな小数に対応するかを考えてみましょう。10進法で書かれた小数の各位がどのように書けていたかを考えれば、次のようになることがわかります。\[ 2\times \frac{1}{5^1}+1\times \frac{1}{5^2}+3\times \frac{1}{5^3} \]となり、計算すると、 0.464 を表すことがわかります。

$n$ 進法で書かれた小数を10進法に変換するには、上のような変換をすればいいのですが、1つ注意点があります。

例えば、6進法で書かれた $0.2_{(6)}$ を10進法に変換してみましょう。すると、\[ \dfrac{2}{6} \]となるので、 $0.333\cdots$ となります。このように、 $n$ 進法では有限小数でも、10進法になると無限小数になることがあります。

これは、別に6進法だから起こっているわけではありません。 $0.213_{(6)}$ なら、\[ 2\times \frac{1}{6^1}+1\times \frac{1}{6^2}+3\times \frac{1}{6^3} \]となり、計算すると、今度は 0.375 と有限小数になります。

$n$ 進法の小数を10進法の小数で書いた場合、有限小数にも無限小数にもなりえます。また、次で見る、10進法から $n$ 進法への変換でも、同様のことが起きる可能性があります。

n進法の小数への変換

【基本】n進法への変換(整数)で見たように、10進法の整数から $n$ 進法の整数に変換するのは、逆の変換よりも大変でした。小数の場合も $n$ 進法への変換の方が難しいです。

先ほど見た、 0.464 を5進法へ変換することを考えましょう。整数のときと違って、何桁まであるかはわかりません。先ほど見た通り、無限小数になることもあるくらいですからね。

なので、まず、小数第一位がどうなるかだけを考えましょう。整数のときには、 $n$ 進法に変換するときには $n$ で割りましたが、今回は掛けてみましょう。 0.464 に5を掛けると、2.32 となります。

5進法で表した場合、\[ a\times \frac{1}{5^1}+b\times \frac{1}{5^2}+c\times \frac{1}{5^3}+\cdots \]となるわけなので、5倍して整数部分に表れるのは、小数第一位の部分だけです。なので、 2.32 の整数部分の 2 が、小数第一位になることがわかります。

続いて、残りの 0.32 の部分を考えましょう。さらに5を掛けて 1.6 となります。この整数部分が、小数第二位となります。さらに 0.6 に5を掛けてえられる 3 が、小数第三位となり、\[ 0.213_{(5)} \]となることがわかります。実際に、元に戻っていることがわかります。

10進法の小数を $n$ 進法の小数へ変換する場合は、 $n$ を掛けて整数部分を抜き出していく、というのを繰り返せばいいことがわかります。

もし、 $12.345$ のような数を変換する場合には、少し面倒ですが、整数部分と小数部分をそれぞれ変換すればいいでしょう。

おわりに

ここでは、 $n$ 進法の小数は10進法表すとどうなるか、逆に変換する場合はどうするか、を見てきました。整数のときの変換が分かっていれば、その応用だということがわかると思います。