数学A

$n$ 進数の小数

小数の $n$ 進数表示

10進数→ $n$ 進数に変換することを考えましょう。

整数であれば変換ができる人でも、小数になると混乱してしまうことが多いようです。

問題

$0.625$ を2進数で表せ。

まず、小数とは何かをあらためて考えておきましょう。

10進数の $0.625$ とは、分数を利用して表すと

$6\cdot\dfrac{1}{10}+2\cdot\dfrac{1}{100}+5\cdot\dfrac{1}{1000}$

のことです。

同様に、2進数の小数で表すということは、

$?\cdot\dfrac{1}{2}+?\cdot\dfrac{1}{2^{2}}+?\cdot\dfrac{1}{2^{3}}…$

の形に書き換えるということです。

(ここでの「?」は、2進数なので0か1です。)

そうですね。小数はそういう風に表すものですね。
ではまず、$0.625$ の中に $\dfrac{1}{2}$ は何個入りますか?
$\dfrac{1}{2}$ は $0.5$ だから、$0.625$ の中に1個入りますね。
$0.625$ の中に $0.5$ を1個入れたら、残りどれだけになりますか?
残りは… $0.625-0.5$ で $0.125$ ですね。
ということは、

$0.625=1\cdot\dfrac{1}{2}+0.125$

と書き換えられます。
小数第1位は1、ということですね。
では続いて、$0.125$ の中に $\dfrac{1}{2^{2}}$ は何個入りますか?
入りませんね。0個です。
つまり、

$0.625=1\cdot\dfrac{1}{2}+0\cdot\dfrac{1}{2^{2}}+0.125$

となりますね。
さらに、$0.125$ の中に $\dfrac{1}{2^{3}}$ は何個入りますか?
あ、ちょうど1個入ります!

$0.625=1\cdot\dfrac{1}{\text{2}}+0\cdot\dfrac{1}{2^{2}}+1\cdot\dfrac{1}{2^{3}}$

こう書けましたね。これはつまり、

$0.625=0.101_{(2)}$

ということを意味します。

$n$ 進数変換アルゴリズム

上でやったことを機械的に行う方法を考えましょう。

まず、$0.625$ に2をかけます。

$0.625×2=1.25$

$1.25$ の整数部分は $1$ ですが、ここで意味しているのは、
$0.625$ の中に $\dfrac{1}{2}$ は1個入る
ことです。
あっ、確かに…

「2倍したものに1が何個入るか」と、「$0.5$ が何個入るか」は同じですね…

続いて、$1.25$ の整数部分を取り除いて、小数部分 $0.25$ を考えましょう。

$0.25$ に2をかけると…

$0.25×2=0.5$

この整数部分は $0$ ですが、これの意味することは…
$\dfrac{1}{2^{2}}$ は0個入る、ですね!
その通り。小数部分に2をかけ続けることで、$\dfrac{1}{2^{n}}$ が入るかどうかを判定することができるのです。
最後に $0.5$ に $2$ をかけて $1$ になるので、$\dfrac{1}{2^{3}}$ が $1$ 個入って終了ですね!

$\dfrac{1}{2}$ は1個、$\dfrac{1}{2^{2}}$ は0個、$\dfrac{1}{2^{3}}$ が $1$ 個で…

$0.625=0.101_{(2)}$

となるんですね!

練習

5進数でも同じことをやってみましょう。
問題

$0.776$ を5進数で表せ。

順に5をかけていくと $\dfrac{1}{5^{n}}$ が何個入るかが分かるんですよね!

$0.776×5=3.88$

整数部分は $3$

小数部分は $0.88$

これはつまり、$0.776 $に $\dfrac{1}{5}$ は3個入る、ということですね!

さらに小数部分に5をかけて…

$0.88×5=4.4$

整数部分は$ 4$

小数部分は $0.4$

$\dfrac{1}{5^{2}}$ は $4$ 個入る…!

$0.4×5=2$

整数部分は $2$

$\dfrac{1}{5^{3}}$ は $2$ 個入る…で終了です!

つまり、こうです!

$0.776=0.342_{(5)}$

$n$ 進数の循環小数の変換

問題

7進数で表された循環小数 $0.\dot{3}\dot{5}_{(7)}$ を5進数の小数で表せ。

手順1 循環小数の分数化

まずはこの循環小数を10進数の分数に書き換えましょう。
5進数で表すのは一旦後回しということですね。

$0.\dot{3}\dot{5}_{(7)}=3\cdot\dfrac{1}{7}+5\cdot\dfrac{1}{7^{2}}+3\cdot\dfrac{1}{7^{3}}+5\cdot\dfrac{1}{7^{4}}+…$

循環小数の分数化は10進数と同じように考えることができます。

分からなくなったら、リンク先の記事とよく見比べてみてください。

方法1 $100_{(7)}$倍する

7進数でいうところの $100$ は、$7^{2}$、つまり $49$ であることに注意しましょう。

$x=3\cdot\dfrac{1}{7}+5\cdot\dfrac{1}{7^{2}}+3\cdot\dfrac{1}{7^{3}}+5\cdot\dfrac{1}{7^{4}}+…$ ……①

とおくと、両辺に $49$ をかけて、

$49x=3\cdot7+5+3\cdot\dfrac{1}{7}+5\cdot\dfrac{1}{7^{2}}+…$ ……②

②ー①より

$48x=21+5$

よって

$x=\dfrac{26}{48}=\dfrac{13}{24}$

方法2 無限等比級数の公式を使う

極限の公式を使えるなら、一番わかりやすい解法はこれかもしれないですね。

$0.\dot{3}\dot{5}_{(7)}=3\cdot\dfrac{1}{7}+5\cdot\dfrac{1}{7^{2}}+3\cdot\dfrac{1}{7^{3}}+5\cdot\dfrac{1}{7^{4}}+…$

これは初項 $3\cdot\dfrac{1}{7}+5\cdot\dfrac{1}{7^{2}}$、公比が $\dfrac{1}{49}$ の無限等比級数。

$0.\dot{3}\dot{5}_{(7)}=\dfrac{3\cdot\frac{1}{7}+5\cdot\frac{1}{7^{2}}}{1-\frac{1}{49}}$

$=\dfrac{3\cdot7+5}{49-1}$

$=\dfrac{26}{48}$

$=\dfrac{13}{24}$

これが分かりやすいかもです!

方法3 $\frac{1}{66_{(7)}}$を考える

10進数で $\dfrac{1}{99}が0.010101…$

であるのと同様に、

7進数では $\dfrac{1}{66_{(7)}}=0.010101…$ です。

66倍したら $0.6666…$ となって $1$ になるからですね!
ここで気をつけるのは、「66」とは「7進数の66」、つまり48であることです。
その $\dfrac{1}{66_{(7)}}$ を 35倍すれば $0.\dot{3}\dot{5}_{(7)}$ になるんですよね。
そうです。しかし、「35倍」も「7進数の35倍」であることに気をつけて、

$0.\dot{3}\dot{5}_{(7)}=\dfrac{35_{(7)}}{66_{(7)}}=\dfrac{26}{48}=\dfrac{13}{24}$

となります。

この方法は少し慣れが必要かもしれないですね。

手順2 分数の5進数への変換

では、$\dfrac{13}{24}$を5進数の小数に変換しましょう。
5をかけて、整数部分を取り除く…を繰り返すんですね!

$\dfrac{13}{24}×5=\dfrac{65}{24}=2+\dfrac{17}{24}$

整数部分は2

小数部分は$\dfrac{17}{24}$

小数第1位は 2…!

$\dfrac{17}{24}×5=\dfrac{85}{24}=3+\dfrac{13}{24}$

整数部分は3

小数部分は $\dfrac{13}{24}$

小数第2位は 3…!
さて、ここで気が付くことがありますか?
…あ…$\dfrac{13}{24}$ って、始めと同じですね…
その通りです。

ですからこれ以降、整数部分は2、3を繰り返すことになります。

よって、5進数で表すと次のようになると分かりました。

$0.\dot{3}\dot{5}_{(7)}=0.\dot{2}\dot{3}_{(5)}$ (解答終わり)

ABOUT ME
e-yobi
北海道大学工学研究科 修士課程修了。 専門は複雑系における物理現象。 大学卒業後は商社でネットワークエンジニアとして働いていました。 4年で退職し、教員免許を取得。 公立高校・私立高校の教員を経て、現在は関西で予備校講師をしています。