おいしい数学HOMEへのリンク

整数の基数変換

整数(数学A)(教科書範囲) 

アイキャッチ

$n$ 進法の概念について導入し,整数の基数変換の方法について扱います.小数の基数変換は扱いません.

情報Iや基本情報技術者試験等,情報系でも問われる分野です.

$n$ 進法とは

私達の日常生活では,$0$ から $9$ までの $10$ 種類の数字を活用しています( $10$ 進法).しかしそうではない世界があります.コンピュータでは,単純化,算術演算(論理演算も)が簡単という点で $2$ 進法が採用されています.数値,文字,画像から音声まですべて $0$ と $1$ で表現する世界です(この1桁を1ビットといいます).(高校数学で) $2$ 進法で $6$ を表現したい場合

$6=110_{(2)}$

のように $0$ と $1$ で表現し,添字として $(2)$ を付けて $2$ 進法であることを明記します( $10$ 進法の場合は特に明記しません).この数字を基数(または底)といいます.

一方,このページのようにWebサイトの場合では色を $16$ 進法で表現します(カラーコード).

これは何色ですか???

上の色は $1\rm{BE}0\rm {A}2$ という色です. $16$ 進法だと数字が足りないので $\rm A$ 〜 $\rm F$ まで追加して表現します.色は赤,緑,青(光の3原色)の組み合わせで表現します,それぞれが $00$ 〜 $\rm FF$ までの $16^{2}=256$ 通りの表現ができ(全体としては $256^{3}$ 通り),上の色だと赤の要素が $1\rm{B}$,青の要素が $\rm{E}0$,緑の要素が $\rm {A}2$ という数値で色を対応させ組み合わせて表現しています.サイトを作る時にはredという単純な命令で色も出せますが,拘りたい時には上記のように表現します.

上のように $n$ 個の数字や文字で数を表現する方法を $\boldsymbol{n}$ 進法といい,高校数学では $6=110_{(2)}$ のような,$10$ 進法から $n$ 進法への基数変換,また逆に $110_{(2)}=6$ のように $n$ 進法から $10$ 進法への基数変換の方法を学びます.

$n$ 進法から $10$ 進法への基数変換

$10$ 進法で $abc$ という3桁の数は,左から順に $10^{2}$ の位,$10$ の位,$1$ の位なので

$abc=a\cdot 10^{2}+b\cdot10+c$

とできます.

$2$ 進法で $abc_{(2)}$ という3桁の数は,左から順に $2^{2}$ の位,$2$ の位,$1$ の位と解釈できるので

$abc_{(2)}=a\cdot 2^{2}+b\cdot2+c$

とできます.

先ほどの $110_{(2)}$ ならば

$110_{(2)}=1\cdot 2^{2}+1\cdot2+0=6$

として $10$ 進法の数に変換できますね.以下でまとめます.

$n$ 進法から $10$ 進法への基数変換

$n$ 進法で $abc_{(n)}$ という3桁の数は

$\boldsymbol{abc_{(n)}=a\cdot n^{2}+b\cdot n+c}$

として $10$ 進法に計算できる.

※ 4桁以上でも同様です.


次章では逆の操作方法を扱います.

$10$ 進法から $n$ 進法への基数変換

$10$ 進法で $N$ という数を,$n$ 進法で $\cdots dcba_{(n)}$ とできるとすると

$\begin{align}N&=\cdots cba_{(n)} \\ &=a+b\cdot n+c\cdot n^{2}+d\cdot n^{3}+\cdots\end{align}$

とできます.第2項以降は $n$ の倍数なので,$a$ は $N$ を $n$ で割った余りだとわかります.

両辺 $a$ を引いて $n$ で割ると

$\dfrac{N-a}{n}=b+c\cdot n+d\cdot n^{2}+\cdots$

となるので,同様に第2項以降は $n$ の倍数なので,$b$ は $\dfrac{N-a}{n}$ (これは $N$ を $n$ で割った商です)を $n$ で割った余りだとわかります.

これを繰り返していくと,$a$,$b$,$c$,$d$,$\cdots$ が求められますね.これを機械的に行う処理として,例えば $10$ 進法で $6$ という数を $2$ 進法に変換するには以下のように

基数変換の例

$6=1\cdot 2^{2}+1\cdot2+0=110_{(2)}$

上のように割れなくなるまで余りをメモし,最後の商から順に余りを並べていくと算出できます.

$10$ 進法から $n$ 進法への基数変換

$10$ 進法で $N$ という数を,$n$ 進法で表現したいとき

$\boldsymbol{N}$ を $\boldsymbol{n}$ で割った余りメモし,また商を $\boldsymbol{n}$ で割った余りメモしを繰り返し,最後の商から順に余りを並べていく

例題と練習問題

例題

例題

(1) $241_{(5)}$ を $10$ 進法で表せ.

(2) $50$ を $3$ 進法で表せ.


講義

(1)では左から順に $5^{2}$ の位,$5$ の位,$1$ の位と解釈して計算します.(2)ではひたすら $3$ で割って余りをメモしていきます.


解答

(1)

 $241_{(5)}$

$=2\cdot 5^{2}+4\cdot5+1$

$=\boldsymbol{71}$


(2)

整数の基数変換例題

$50=\boldsymbol{1212_{(3)}}$

練習問題

練習

(1) $345_{(6)}$ を $10$ 進法で表せ.

(2) $10110_{(2)}$ を $10$ 進法で表せ.

(3) $52$ を $2$ 進法で表せ.

(4) $777$ を $7$ 進法で表せ.

解答

(1)

 $345_{(6)}$

$=3\cdot 6^{2}+4\cdot6+5$

$=\boldsymbol{137}$


(2)

 $10110_{(2)}$

$=1\cdot 2^{4}+0\cdot 2^{3}+1\cdot 2^{2}+1\cdot 2+0$

$=\boldsymbol{22}$


(3)

整数の基数変換練習問題(3)

$51=\boldsymbol{110100_{(2)}}$

(4)

整数の基数変換練習問題(4)

$777=\boldsymbol{2160_{(7)}}$