n進法の小数 | 10進数の小数をn進数に変換するやり方【5進数の例などで】
" n進数の小数 “について5進数などの具体例を使いながら解説をしています。
つまり、10進数の小数を5進数の小数などへと変換する方法をメインに扱っています。
高校の情報の授業で扱われる「n進数の小数とは何であるかということから始め、通常の10進数の小数との変換」をスムーズに習得できるように説明をしています。
n進数の n という基礎となる底として 5 や 2 といった具体的な数で説明をしています。
具体的な数字で例を使って学習することで、一般論の内容が理解しやすくなるかと思います。
n進数の小数を学習するときに、高校の数学の計算も使うので、それについて述べてから本題へと話を進めます。
n進数の小数 :各位の数と10進数の関係から
n進数の小数を学習するときに、指数が負の整数という数が出てきます。
この高校数学の内容について、必要な計算規則などをまとめておきます。
5-1 という指数の符号がマイナスのときは、
5-1 = 1/51 という分数を表しています。
分数の分子を分母で割ると小数になるので、
5-1 = 1÷5 = 0.2 ということになります。
同じく 5-2 は、
1/52 = 1÷52
= 1÷25 = 0.04 です。
一般に、自然数 k について、
5-k = 1/5k という分母が 5k の分数ということになります。
この内容は10進数の内容ですが、5進数の小数などを考えるときに、マイナスの指数を使ったものを扱うことが多いので取り挙げておきました。
それでは、n進数の小数について説明をします。
0.233(5) という5進数の小数の各位の呼び方から述べます。
小数点のすぐ右の位が5-1の位です。
この例だと、5-1の位が 2 ということになります。
順に5-1の位の1つ右が5-2の位で、さらにその右が5-3の位です。
n = 5 のときを考えていますが、一般のn進数でも、基礎となる底の 5 を n と思うと同じ要領で考えることができます。
この各位の呼び方を押さえておくと、n進数の小数から通常の10進数の小数への書き換えをスムーズに行うことができます。
0.233(5) という5進数の小数を10進数に直してみます。
2×5-1+3×5-2+3×5-3というように、各位の数を係数として掛けた10進数の数が対応する10進数の小数になります。
この桁の重みの形を計算して、分数や小数として見慣れた形にします。
5-3 = 1÷53
= 1÷125 = 0.008 なので、
2×5-1+3×5-2+3×5-3
= 2×0.2+3×0.04+3×0.008
= 0.6+0.12+0.024
= 0.744 です。
つまり、
0.233(5) = 0.744(10) ということになります。
今度は10進数の小数をn進数の小数へと書き換えるやり方について説明します。
例として、10進数の0.56(10)を5進数の小数に直す手順を説明します。
n進数へ変換する方法の例
10進数の0.56(10)を5進数の小数に直す手順になります。
①はじめに、0 を取り出して外に書いておきます。
基礎となる底が 5 である5進数については、5 を掛けます。
0.56×5 = 2.80 と計算します。
②計算した数の最高位の整数である 2 を取り外して、外に書いておきます。
そして、2 は取り外したので、
2.80 を 0.80 とします。
次に、0.80 へ再び 5 を掛け、計算結果の最高位の整数を取り外すということをします。
同じ操作の繰り返しになります。
0.80×5 = 4.00 なので、
③計算した数の最高位の整数である 4 を取り外して、外に書きます。
順に 5 を掛けるということを繰り返すと述べましたが、終わりが来るときがあります。
この終わりの合図は、5 を掛けたときに、計算結果が 50 の位以外がすべて 0 になるときです。
4.00 と 5 を掛けた計算結果が、5-1の位から右へ順にずっと 0 になりました。
④これで繰り返し操作を終了します。
この 4 を取り外して外へ書き、操作が完了です。
5 を掛ける操作が完了したら、右へ書き出した数を50の位から順に並べます。
すると、
0.24(5) となります。
これが、0進数の0.56(10)を5進数の小数に直したものになります。
よって、
0.56(10) = 0.24(5) です。
5進数の小数を10進数に書き直すと、正しく書き直すことができたかを確認することができます。
実際、
2×5-1+4×5-2
= 2×0.2+4×0.04
= 0.4+0.16
= 0.56 となっています。
10進数の小数をn進数へ直す手順について述べましたが、このやり方が、どういった計算をしているのかということを説明しておきます。
得体の知れないやり方を暗記するのは苦しいものがあるかと思いますので、実は既に知っている計算の法則を使って書き換えをしているということを理解しておくと良いかと思います。
n進法の小数へ変換するやり方
0.56(10) を 0.24(5) に直すのに、筆算の計算を繰り返しました。
この計算が何を表しているのかということを説明します。
実は、中学1年の数学で四則計算を学習したときに出てきた分配法則が効いています。
先ほどの10進数の筆算では、はじめに 5 を掛け次の計算結果を得ました。
0.56×5 = 2.80 でした。
この両辺に 5-1を掛けます。
左辺は、5×5-1 = 1 と約分され、
0.56 = 2.80×5-1 …①となります。
ここで、
2.80 = 2+0.80 として、①の右辺を書き換えます。
0.56 = (2+0.80)×5-1 です。
ここで、分配法則を使って括弧を外します。
すると、
0.56 = 2×5-1+0.80×5-1 …②となります。
この分配法則は、先ほどの筆算の繰り返しで最高位の整数を取り外して右端に書き出した内容に当たります。
先ほどの筆算では、最高位の 2 を外へ外した後の0.80に5を掛けました。
つまり、
0.80×5 = 4.00 でした。
再び両辺に 5-1 を掛けます。
すると、
0.80 = 4.00×5-1 …③
この③を②の右辺に代入すると、
0.56 = 2×5-1+0.80×5-1
= 2×5-1+(4.00×5-1)×5-1
= 2×5-1+4×5-1×5-1
= 2×5-1+4×5-2 となります。
桁の重みの形になったので、
0.24(5) という5進数の小数が分かりました。
桁の重みの形は横に長い式ですが、これを縦書きの筆算を繰り返す形で式の変形内容を表していたということです。
このような例で、10進数の小数をn進数の小数に直す手順が表す内容の本質的な部分を理解しておくと、単なる暗記よりも学習のレベルが深くなります。
すると、高校の情報の授業と合わせて、数学の大学受験レベルの整数の問題との融合内容などへも理解を広げられたりするかもしれません。
横書きの桁の重みの形とのつながりも押さえることができたので、練習問題で練習をしておきます。
上の例では、整数部分が 0 の小数を扱いましたが、今度は整数部分が 0 でない小数を直す問題を取り挙げています。
整数部分と小数部分を分けてn進数にそれぞれを直してから、つなぎ合わせると求めたい値となります。
n進数の小数に変換する練習問題
【問題】
7.536 という10進数の小数を5進数の小数に直してください。
<解答と解説>
7.536(10)の整数部分は7(10)です。
小数の0.536(10)と分けて、それぞれを5進数に直してから、つなぎ合わせます。
7 = 5+2
= 1×51+2×50 より、
7(10) は 12(5) です。
次に0.536(10)を書き直します。
先ほどの筆算の手順の通りに操作を実行します。
まずはじめに、50の値となる 0 を取っておきます。
0.536×5
= 2.680 です。
整数部分の 2 を取り外します。
そして、残りの0.680 に 5 を掛けます。
0.680×5
= 3.400
整数部分の 3 を取り外します。
0.400 は小数部分が全て 0 でないので、まだ繰り返し操作を実行します。
0.400×5
= 2.000 です。
小数部分が全て 0 になったので、整数部分の 2 を取り外し繰り返し操作を終了します。
以上より、取り外した数字を順に並べると対応する小数になります。
つまり、
0.232(5) が 0.536(10) を書き換えた値になります。
7.536(10)の整数部分 7(10) を5進数に書き換えた12(5) とつなぎ合わせます。
すると、
12.232(5) となります。
これが7.536(10)を5進数に直した値です。
※ 今回の記事で扱った例や練習問題では、有限回の操作で終了しましたが、一般に10進数の小数をn進数の小数に直すときに、永遠に操作が終わらないこともあります。
n進法の小数への直し方について、他のやり方として文字を使った求め方も解説しておきます。
文字を使ったn進法の小数への直し方
0.875という10進法の小数を2進法の小数へ直します。
t = 0.875 と置きます。
この t を2進法の小数で表したときに、
t = 0.abcd…(2) だとします。
2-1の位が a で2-2の位が b と順に、文字を使って考えるということです。
基礎としている底は 2 なので、2 を掛けて小数点をずらすことに関わる等式を考えます。
t = 0.875 と置いたので、
2t = 1.75 …①
一方、
t = 0.abcd…(2) より
t = a2-1+b2-2+c2-3+d2-4+… という桁の重みの形で表すことができます。
両辺を 2 倍すると、
2t = a+b2-1+c2-2+d2-3+… ②
①と②から、2t を10進法の小数として2通りに表すことができました。
②より、2t の整数部分は a です。
そして、2t = 1.75 …①より、2t の整数部分は 1 です。
よって、a = 1 と値が決定できました。
2t = 1.75 の整数部分が 1 で、
小数部分が 0.75 ということを再び使います。
a+b2-1+c2-2+d2-3+…という②の形から、
b2-1+c2-2+d2-3+…が 2t の小数部分です。
そのため、
0.75 = b2-1+c2-2+d2-3+… となっています。
この両辺に 2 を掛けると、
1.5 = b+c2-1+d2-2+… となります。
左辺と右辺の整数部分が、それぞれ 1 と b なので、
b = 1 と値が決定します。
左辺と右辺の小数部分については、
0.5 = c2-1+d2-2+… ★となっています。
このように、同じ操作が繰り返されています。
★の両辺に 2 を掛けます。
すると、
1.0 = c+d2-1+… となります。
左辺と右辺の整数部分は、それぞれ 1 と c なので、
c = 1 と値が決定します。
また、左辺の小数部分は全て 0 です。
そのため、d2-1+… という右辺の小数部分は、どの位も全て 0 になっていなければなりません。
よって、
d = 0, … となっています。
これで、文字で置いていた位の値が正確に決定しました。
つまり、
0.875 という10進法の小数は、
0.1110…(2)のということになります。
2-4の位以降は全て 0 なので、通常の小数と同じく省略します。
すなわち、
0,876(10)
= 0.111(2) ということです。
この記事のはじめの方で述べた筆算の繰り返しですが、数学的な計算の仕組みを見切れると、このように文字を使って内容を表現することもできます。
ここまで取り挙げた具体例では、有限回の操作でn進法の小数に書き換えることができるものを扱いました。
永遠に操作が終わらない例を最後に述べておきます。
エンドレスに終わらない例
0.3 という10進法の小数を5進法の小数に直すことを考えます。
筆算を使うときのやり方で、操作を繰り返してみます。
いつまで操作を続けても、小数部分が全て 0 になるという終わりの合図が出てこない例になります。
まずは、0 を外しておきます。
次に基礎となる底 5 を掛けました。
0.3×5 = 1.5 です。
整数部分が 1 なので取り外し、0.5 に再び 5 を掛けます。
0.5×5 = 2.5 より、
整数部分の 2 を取り外し、0.5 に再び 5 を掛けます。
0.5×5 = 2.5 より、
整数部分の 2 を取り外し、0.5 に再び 5 を掛けます。
この操作の繰り返しが永遠に起こります。
そのため、有限回の操作では終了しません。
つまり、0.5(10) は、
0.122…(2) という永遠に小数部分に 0 でない値が続く5進法の小数です。
同じパターンで数字が繰り返される小数なので、循環小数となっています。
通常の10進法の小数と同じく「・」を上につけて循環小数を表します。
0.122…(2) は、
0.12(2) と表します。
この様に、10進数の小数をn進数の小数へと書き換えようとしたときに、有限小数にならないこともあるということは知っておくと良いかと思います。
関連する記事たち
他にも高校で扱われる情報や数学についての記事を投稿しています。
■ 2進数-補数
■ 16進数-アルファベット
■ 情報量-ビット
■ 浮動小数点数
これらは情報の授業で扱われる内容になります。
高校の数学IIでは、桁数についての内容も出てきます。
■ 常用対数(小数首位の数)
それでは、これで今回のブログ記事を終了します。
読んで頂き、ありがとうございました。