整数の性質|n進法について

12/18/2018数学A2進法,整数の性質,n進法,,位取り記数法,10進法

今回はn進法について学習しましょう。日常的に用いられているのは10進法です。ですから、2進法や5進法などで表された数の扱いには慣れていないので、意外と間違えやすい単元です。

そうは言っても、取扱いに慣れてしまえば、得点源にできる単元です。十分に演習をこなして準備しておきましょう。

n進法の単元で学習すること

この単元では、以下のような事柄を学習します。

  • $n$ 進法について
  • 記数法の変換
  • $n$ 進法の小数
  • $n$ 進数の四則計算
  • $n$ 進数の各位の数と記数法の決定
  • $n$ 進数の桁数
  • 有限小数・無限小数、分数の小数表示と記数法

ここでは、記数法の変換までを紹介し、残りは次回以降に紹介します。

n進法について

n進法の基本事項

この単元で覚えておきたい用語とその定義です。

$n$ 進法…位取りの基礎を $n$ として数を表す方法のこと。
$n$ 進数… $n$ 進法で表された数のこと。
…位取りの基礎となる数 $n$ のこと。
底が満たす条件… $2$ 以上の整数。
$n$ 進数の各位の数字が満たす条件… $0$ 以上 $n-1$ 以下の整数。

特に、底や各位の数字が満たす条件は、数を決定するために用いられるので、きちんと覚えておきましょう。

また、n進数の表し方にルールがあります。n進数では、底が何かを表すために、その数の右下に(n)と書くルールになっています。なお、10進法では、普通(10)を省略します。

$n$ 進数の表し方
2進数… $100_{(2)} \ , \ 234_{(2)}$
10進数… $100 \ , \ 234$ ← 底を省略して良い。

10進数以外では底を書くことになっているので、書き忘れないようにしましょう。ここまでがn進法の基本事項です。

位取り記数法

数を表すとき、通常、位取りの基礎を10とする10進法が用いられています。なお、位取りとは、数の位(=けた)を定めることや、その定め方のことです。

たとえば、10進数で表された数12345では、基礎とした10を用いて位取りしています。なお、底の10は基礎となる数なので、基数と言われることもあります。

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で割った余りの種類と同じです。

10進数で12345と書かれた整数について
$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以上の整数は、すべて以下の形で表すことができます。

$n$ 進数は $n$ を用いて位取り
\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進法と呼ばれる表し方になります。

$n$ 進数のまとめ
\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進法の小数について、小数点以下の位は以下のように定められています。

\begin{equation*}
\text{$\frac{1}{10^{\scriptsize{1}}}$ の位} \ , \ \text{$\frac{1}{10^{\scriptsize{2}}}$ の位} \ , \ \text{$\frac{1}{10^{\scriptsize{3}}}$ の位} \ , \ \cdots \cdots
\end{equation*}

これと同じように、n進法の小数について、小数点以下の位は以下のように定められています。

\begin{equation*}
\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の累乗を用いて表します。

10進数から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進数に変換することができます。しかし、このやり方だとかなり面倒な作業になります。この面倒な作業を少しでも簡単に行えるのが、次に紹介する方法です。この方法の手順を覚えてしまえば機械的に変換できます。

10進数を $n$ 進数で表す方法

  1. 商が $0$ になるまで $n$ で割る割り算を繰り返す。
  2. 出てきた余りを逆順に並べる。

素因数分解のときと同じように下に割り算していきます。割る数はずっと底のままです。また、変換するには余りを用いるので、余りを書き残しておきます。先程の23をこの方法で2進数に変換してみましょう。

10進数を2進数に変換する方法

底の2で割ったときの商を下に、余りをその横に書いていきます。商が0になったら終了です。

なお、教材によっては、余りが割る数よりも小さくなったら終了とする場合もあります。その場合、最後の商を先頭にして、余りを逆順に並べます。慣れてくると、こちらの方がやりやすいかもしれません。

10進数を2進数に変換する方法その2

この方法では、最後の商を忘れないようにしましょう。

次はn進法を扱った問題を実際に解いてみましょう。