整数の性質|n進法について
今回はn進法について学習しましょう。日常的に用いられているのは10進法です。ですから、2進法や5進法などで表された数の扱いには慣れていないので、意外と間違えやすい単元です。
そうは言っても、取扱いに慣れてしまえば、得点源にできる単元です。十分に演習をこなして準備しておきましょう。
n進法の単元で学習すること
この単元では、以下のような事柄を学習します。
- $n$ 進法について
- 記数法の変換
- $n$ 進法の小数
- $n$ 進数の四則計算
- $n$ 進数の各位の数と記数法の決定
- $n$ 進数の桁数
- 有限小数・無限小数、分数の小数表示と記数法
ここでは、記数法の変換までを紹介し、残りは次回以降に紹介します。
n進法について
n進法の基本事項
この単元で覚えておきたい用語とその定義です。
$n$ 進数… $n$ 進法で表された数のこと。
底…位取りの基礎となる数 $n$ のこと。
底が満たす条件… $2$ 以上の整数。
$n$ 進数の各位の数字が満たす条件… $0$ 以上 $n-1$ 以下の整数。
特に、底や各位の数字が満たす条件は、数を決定するために用いられるので、きちんと覚えておきましょう。
また、n進数の表し方にルールがあります。n進数では、底が何かを表すために、その数の右下に(n)と書くルールになっています。なお、10進法では、普通(10)を省略します。
2進数… $100_{(2)} \ , \ 234_{(2)}$
10進数… $100 \ , \ 234$ ← 底を省略して良い。
10進数以外では底を書くことになっているので、書き忘れないようにしましょう。ここまでがn進法の基本事項です。
位取り記数法
数を表すとき、通常、位取りの基礎を10とする10進法が用いられています。なお、位取りとは、数の位(=けた)を定めることや、その定め方のことです。
たとえば、10進数で表された数12345では、基礎とした10を用いて位取りしています。なお、底の10は基礎となる数なので、基数と言われることもあります。
\begin{align*}
&1 \cdot 10^{\scriptsize{4}}& + \quad &2 \cdot 10^{\scriptsize{3}}& + \quad &3 \cdot 10^{\scriptsize{2}}& + \quad &4 \cdot 10^{\scriptsize{1}}& + \quad &5 \cdot 10^{\scriptsize{0}} \\[ 5pt ]
&{\scriptsize{\text{$10^4$ の位}}}& &{\scriptsize{\text{$10^3$ の位}}}& &{\scriptsize{\text{$10^2$ の位}}}& &{\scriptsize{\text{$10^1$ の位}}}& &{\scriptsize{\text{$10^0$ の位}}}
\end{align*}
上の位から数字を抜き出して並べると $12345$
10の累乗ごとに位が定められ、指数が大きくなるほど上の位となります。各位の数字は、上の位から順に、左から右へ並べられます。なお、各位の数字は0以上9以下の整数で、これは整数を10で割った余りの種類と同じです。
$12345$ は各位の数字の配列を表しており、実際には、
$\quad 1 \cdot 10^{\scriptsize{4}} + 2 \cdot 10^{\scriptsize{3}} + 3 \cdot 10^{\scriptsize{2}} + 4 \cdot 10^{\scriptsize{1}} + 5 \cdot 10^{\scriptsize{0}}$
を意味する。
これと同じようにして、$n$ 進数も表せます。一般に $n$ を2以上の整数とするとき、0以上の整数は、すべて以下の形で表すことができます。
\begin{align*}
&a_{\scriptsize{k}} \cdot n^{\scriptsize{k}} + a_{\scriptsize{k-1}} \cdot n^{\scriptsize{k-1}} + \cdots \cdots + a_{\scriptsize{2}} \cdot n^{\scriptsize{2}} + a_{\scriptsize{1}} \cdot n^{\scriptsize{1}} + a_{\scriptsize{0}} \cdot n^{\scriptsize{0}} \\[ 10pt ]
&\text{( $a_{\scriptsize{0}} \ , \ a_{\scriptsize{1}} \ , \ a_{\scriptsize{2}} \ , \ \cdots \cdots \ , \ a_{\scriptsize{k-1}} \ , \ a_{\scriptsize{k}}$ は $0$ 以上 $n-1$ 以下の整数、$a_{\scriptsize{k}} \neq 0$ )}
\end{align*}
これを10進数と同じように $a_{\scriptsize{0}} \ a_{\scriptsize{1}} \ a_{\scriptsize{2}} \ \cdots \cdots \ a_{\scriptsize{k-1}} \ a_{\scriptsize{k}}$ のような数字の配列で、$n$ 進数を表します。この方法を位取り記数法と言います。$n=10$ のときが10進法、$n=2$ のときが2進法と呼ばれる表し方になります。
\begin{align*}
&\text{$n$ を $2$ 以上の整数とする。} \\[ 5pt ]
&\text{$n$ 進法で $a_{\scriptsize{0}} \ a_{\scriptsize{1}} \ a_{\scriptsize{2}} \ \cdots \cdots \ a_{\scriptsize{k-1}} \ a_{\scriptsize{k}}$ と書かれた $k+1$ 桁の正の整数は、} \\[ 10pt ]
&\quad a_{\scriptsize{k}} \cdot n^{\scriptsize{k}} + a_{\scriptsize{k-1}} \cdot n^{\scriptsize{k-1}} + \cdots \cdots + a_{\scriptsize{2}} \cdot n^{\scriptsize{2}} + a_{\scriptsize{1}} \cdot n^{\scriptsize{1}} + a_{\scriptsize{0}} \cdot n^{\scriptsize{0}} \\[ 10pt ]
&\text{の意味である。} \\[ 5pt ]
&\text{ただし、$a_{\scriptsize{0}} \ , \ a_{\scriptsize{1}} \ , \ a_{\scriptsize{2}} \ , \ \cdots \cdots \ , \ a_{\scriptsize{k-1}} \ , \ a_{\scriptsize{k}}$ は $0$ 以上 $n-1$ 以下の整数、$a_{\scriptsize{k}} \neq 0$}
\end{align*}
以上のことから分かるのは、日常的に用いられている10進数は、あくまでも各位の数字の配列だということです。数字の配列で四則計算ができるのか疑問に思うでしょうが、繰り上げや繰り下げなどのルールがあるおかげで、問題なく四則計算できます。位取り記数法はすごい仕組みだと個人的には思います。
また、10進法の小数について、小数点以下の位は以下のように定められています。
\text{$\frac{1}{10^{\scriptsize{1}}}$ の位} \ , \ \text{$\frac{1}{10^{\scriptsize{2}}}$ の位} \ , \ \text{$\frac{1}{10^{\scriptsize{3}}}$ の位} \ , \ \cdots \cdots
\end{equation*}
これと同じように、n進法の小数について、小数点以下の位は以下のように定められています。
\text{$\frac{1}{n^{\scriptsize{1}}}$ の位} \ , \ \text{$\frac{1}{n^{\scriptsize{2}}}$ の位} \ , \ \text{$\frac{1}{n^{\scriptsize{3}}}$ の位} \ , \ \cdots \cdots
\end{equation*}
なお、小数については「分数と小数」の単元で詳しく紹介します。
記数法の変換
最も基本的な問題として、記数法の変換を扱った問題が出題されます。10以外を底とする数に変換するには、底とした数を用いて位取りすれば良いです。
たとえば、23を2進数に変換してみましょう。底が2であるので、23を2で位取り、すなわち2の累乗を用いて表します。
\begin{align*}
&\quad 23 = 1 \cdot 2^{\scriptsize{4}} + 0 \cdot 2^{\scriptsize{3}} + 1 \cdot 2^{\scriptsize{2}} + 1 \cdot 2^{\scriptsize{1}} + 1 \cdot 2^{\scriptsize{0}} \\[ 5pt ]
&\text{よって、$23$ を $2$ 進法で表すと $10111_{\scriptsize{(2)}}$}
\end{align*}
2の累乗を用いて表せば各位の数字が分かるので、2進数に変換することができます。しかし、このやり方だとかなり面倒な作業になります。この面倒な作業を少しでも簡単に行えるのが、次に紹介する方法です。この方法の手順を覚えてしまえば機械的に変換できます。
- 商が $0$ になるまで $n$ で割る割り算を繰り返す。
- 出てきた余りを逆順に並べる。
素因数分解のときと同じように下に割り算していきます。割る数はずっと底のままです。また、変換するには余りを用いるので、余りを書き残しておきます。先程の23をこの方法で2進数に変換してみましょう。
底の2で割ったときの商を下に、余りをその横に書いていきます。商が0になったら終了です。
なお、教材によっては、余りが割る数よりも小さくなったら終了とする場合もあります。その場合、最後の商を先頭にして、余りを逆順に並べます。慣れてくると、こちらの方がやりやすいかもしれません。
この方法では、最後の商を忘れないようにしましょう。
次はn進法を扱った問題を実際に解いてみましょう。