STEP 1

n進法の仕組み ― 位取りの意味

ふだん使っている\(10\)進法は、\(0\)から\(9\)までの\(10\)種類の数字を使い、右から「\(1\)の位」「\(10\)の位」「\(100\)の位」…と、位が上がるごとに\(10\)倍していく仕組みだった。n進法は、これを一般化したもの。\(0\)から\(n-1\)までの\(n\)種類の数字を使い、右から「\(1\)の位」「\(n\)の位」「\(n^2\)の位」…と、位が上がるごとに\(n\)倍していく。

n進法の位取り
使う数字:\(0,\ 1,\ \ldots,\ n-1\) の\(n\)種類(\(n\)そのものは1つの位では使わない)。
位の重み(右から):\(n^0=1,\ n^1=n,\ n^2,\ n^3,\ \ldots\)
例:\(2\)進法は数字\(0,1\)だけを使い、位の重みは \(1,2,4,8,16,\ldots\)。\(5\)進法は数字\(0,1,2,3,4\)を使い、位の重みは \(1,5,25,125,\ldots\)。

ある数を\(n\)進法で表すには、次の手順で「割って余りを並べる」。

10進法→n進法の変換手順
1. その数を\(n\)で割り、商と余りを求める。
2. 商が\(0\)になるまで、商をさらに\(n\)で割ることを繰り返す。
3. 得られた余りを、最後に出たものから最初に出たものへの順(下から上へ)に並べると、n進法での表示になる。

例題1 \(13\)(\(10\)進法)を\(2\)進法で表せ。

解答を見る
\(13 = 2\times6+1\) \(6 = 2\times3+0\) \(3 = 2\times1+1\) \(1 = 2\times0+1\) 商が\(0\)になったので終了。余りを下から上へ(最後に出た余りが最上位の桁)読むと \(1,1,0,1\)。 \(13 = 1101_{(2)}\)

例題2 \(47\)(\(10\)進法)を\(5\)進法で表せ。

解答を見る
\(47 = 5\times9+2\) \(9 = 5\times1+4\) \(1 = 5\times0+1\) 商が\(0\)になったので終了。余りを下から上へ読むと \(1,4,2\)。 \(47 = 142_{(5)}\)

基数\(n\)は\(2\)以上ならどんな整数でもよい。同じ数でも、何進法で表すかによって見た目はまったく違う形になる。

STEP 2

n進法→10進法 ― 各位×累乗の和

逆に、n進法で書かれた数を\(10\)進法に戻すには、各桁の数字にその位の重み(\(n\)の累乗)をかけて、すべて足し合わせればよい。

変換の公式 \(4\)桁の数 \(d_3 d_2 d_1 d_{0(n)}\) なら \[d_3 n^3 + d_2 n^2 + d_1 n + d_0\] を計算すれば\(10\)進法の値になる(桁数が違っても同じ考え方でよい)。

例題1 \(1101_{(2)}\) を\(10\)進法で表せ。

解答を見る
左から順に、位の重みは \(2^3,2^2,2^1,2^0\)(\(=8,4,2,1\))。 \(1101_{(2)} = 1\times8 + 1\times4 + 0\times2 + 1\times1 = 8+4+0+1\) \(1101_{(2)} = 13\)

例題2 \(302_{(4)}\) を\(10\)進法で表せ。

解答を見る
位の重みは \(4^2,4^1,4^0\)(\(=16,4,1\))。 \(302_{(4)} = 3\times16 + 0\times4 + 2\times1 = 48+0+2\) \(302_{(4)} = 50\)
STEP 3

n進法の小数

「n進点」(\(10\)進法での小数点にあたるもの)より右側の位は、\(n^{-1},\ n^{-2},\ n^{-3},\ldots\) という負の累乗の重みを持つ。整数部分と同じ考え方がそのまま使える。

例題1 \(0.101_{(2)}\) を\(10\)進法の小数で表せ。

解答を見る
小数第1位から重みは \(2^{-1},2^{-2},2^{-3}\)(\(=0.5,\ 0.25,\ 0.125\))。 \(0.101_{(2)} = 1\times0.5 + 0\times0.25 + 1\times0.125 = 0.5+0+0.125\) \(0.101_{(2)} = 0.625\)

逆に\(10\)進法の小数をn進法の小数に直すには、小数部分に\(n\)を掛けて整数部分を取り出す、という操作を繰り返す。

例題2 \(0.375\) を\(2\)進法の小数で表せ。

解答を見る
\(0.375\times2 = 0.75\) → 整数部分\(0\)、残り\(0.75\) \(0.75\times2 = 1.5\) → 整数部分\(1\)、残り\(0.5\) \(0.5\times2 = 1.0\) → 整数部分\(1\)、残り\(0\)(ここで終わり) 出てきた整数部分を上から順に並べると \(0,1,1\)。 \(0.375 = 0.011_{(2)}\)
注意 \(10\)進法の分数がいつも有限小数になるとは限らないのと同じで、n進法の小数も割り切れずに循環小数になることがある(例えば \(\dfrac{1}{3}\) を\(2\)進法で表すと循環小数になる。応用問題で扱う)。
STEP 4

n進法の計算・桁数

n進法どうしの足し算は、\(10\)進法の筆算と同じ要領で計算できる。ただし「位が上がる(繰り上がる)」タイミングが\(10\)ではなく\(n\)になる点だけが違う。

例題1 \(1011_{(2)} + 110_{(2)}\) を計算せよ。

解答を見る
位をそろえて筆算する(\(2\)進法なので\(2\)で繰り上がる)。 一の位:\(1+0=1\) 二の位:\(1+1=2\) → \(2\)進法では\(2\)は繰り上がりで\(10_{(2)}\)。この位は\(0\)、上へ\(1\)繰り上げ 四の位:\(0+1+\)繰り上がり\(1=2\) → また繰り上がり。この位は\(0\)、上へ\(1\)繰り上げ 八の位:\(1+0+\)繰り上がり\(1=2\) → また繰り上がり。この位は\(0\)、上へ\(1\)繰り上げ 十六の位:繰り上がりの\(1\)がそのまま残る (検算:\(1011_{(2)}=11\)、\(110_{(2)}=6\)、\(11+6=17\)。\(10001_{(2)}=16+1=17\) で一致。) \(1011_{(2)} + 110_{(2)} = 10001_{(2)}\)

n進法で表したときにちょうど\(k\)桁になる整数の範囲にも、はっきりした法則がある。

桁数の条件 自然数\(N\)をn進法で表したとき、ちょうど\(k\)桁になるための条件は \[n^{k-1} \le N \le n^k-1\] (最上位の桁が\(0\)にならないように、下限は「\(k-1\)桁で表せる最大の数の次」=\(n^{k-1}\)、上限は「\(k\)桁で表せる最大の数」=\(n^k-1\)。)

例題2 \(10\)進法の整数\(N\)を\(5\)進法で表すと、ちょうど\(3\)桁になるという。\(N\)の範囲を求めよ。

解答を見る
\(k=3\)、\(n=5\)として \(n^{k-1} \le N \le n^k-1\) に代入する。 \(5^2 \le N \le 5^3-1\) \(25 \le N \le 124\)
10進法→n進法:nで割り続けて余りを下から上へ並べる
n進法→10進法:各桁×その位の重み(nの累乗)をすべて足す
練習問題(全16問)

答えを入力して「採点」を押すと○×が出るぞ。
わからないときは「解説を見る」で解き方を確認しよう。

基本(1〜6)
1
2進法→10進法

\(1101_{(2)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(8,4,2,1\)。 \(1101_{(2)} = 1\times8+1\times4+0\times2+1\times1 = 13\) \(13\)
2
10進法→2進法

\(45\) を\(2\)進法で表せ。

答え
解説を見る
\(45=2\times22+1\) \(22=2\times11+0\) \(11=2\times5+1\) \(5=2\times2+1\) \(2=2\times1+0\) \(1=2\times0+1\) 余りを下から上へ読むと \(1,0,1,1,0,1\)。 \(101101\)
3
5進法→10進法

\(2034_{(5)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(125,25,5,1\)。 \(2034_{(5)} = 2\times125+0\times25+3\times5+4\times1 = 250+0+15+4\) \(269\)
4
10進法→5進法

\(100\) を\(5\)進法で表せ。

答え
解説を見る
\(100=5\times20+0\) \(20=5\times4+0\) \(4=5\times0+4\) 余りを下から上へ読むと \(4,0,0\)。 \(400\)
5
3進法→10進法

\(212_{(3)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(9,3,1\)。 \(212_{(3)} = 2\times9+1\times3+2\times1 = 18+3+2\) \(23\)
6
10進法→3進法

\(23\) を\(3\)進法で表せ。

答え
解説を見る
\(23=3\times7+2\) \(7=3\times2+1\) \(2=3\times0+2\) 余りを下から上へ読むと \(2,1,2\)。 \(212\)
標準(7〜13)
7
2進法→10進法(桁数が多い)

\(1010101_{(2)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは左から \(64,32,16,8,4,2,1\)。 \(1010101_{(2)} = 1\times64+0\times32+1\times16+0\times8+1\times4+0\times2+1\times1 = 64+16+4+1\) \(85\)
8
10進法→2進法(8桁になる)

\(200\) を\(2\)進法で表せ。

答え
解説を見る
\(200=2\times100+0\) \(100=2\times50+0\) \(50=2\times25+0\) \(25=2\times12+1\) \(12=2\times6+0\) \(6=2\times3+0\) \(3=2\times1+1\) \(1=2\times0+1\) 余りを下から上へ読むと \(1,1,0,0,1,0,0,0\)。 \(11001000\)
9
5進法→10進法

\(3421_{(5)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(125,25,5,1\)。 \(3421_{(5)} = 3\times125+4\times25+2\times5+1\times1 = 375+100+10+1\) \(486\)
10
10進法→6進法

\(100\) を\(6\)進法で表せ。

答え
解説を見る
\(100=6\times16+4\) \(16=6\times2+4\) \(2=6\times0+2\) 余りを下から上へ読むと \(2,4,4\)。 \(244\)
11
7進法→10進法

\(432_{(7)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(49,7,1\)。 \(432_{(7)} = 4\times49+3\times7+2\times1 = 196+21+2\) \(219\)
12
10進法→4進法

\(250\) を\(4\)進法で表せ。

答え
解説を見る
\(250=4\times62+2\) \(62=4\times15+2\) \(15=4\times3+3\) \(3=4\times0+3\) 余りを下から上へ読むと \(3,3,2,2\)。 \(3322\)
13
8進法→10進法

\(777_{(8)}\) を\(10\)進法で表せ。

答え
解説を見る
位の重みは \(64,8,1\)。 \(777_{(8)} = 7\times64+7\times8+7\times1 = 448+56+7\) (\(777_{(8)}\)は\(8\)進法の各桁が最大の数字\(7\)で並んでいるので、\(8^3-1=511\)にちょうど一致する。) \(511\)
挑戦(14〜16)
14
n進法の小数→10進法

\(0.101_{(2)}\) を\(10\)進法の小数で表せ。

答え
解説を見る
小数第1位から重みは \(0.5,\ 0.25,\ 0.125\)。 \(0.101_{(2)} = 1\times0.5+0\times0.25+1\times0.125 = 0.5+0+0.125\) \(0.625\)
15
10進法の小数→n進法の小数

\(0.75\) を\(2\)進法の小数で表せ。

答え
解説を見る
\(0.75\times2=1.5\) → 整数部分\(1\)、残り\(0.5\) \(0.5\times2=1.0\) → 整数部分\(1\)、残り\(0\)(終わり) 整数部分を上から順に並べると \(1,1\)。 \(0.11_{(2)}\)
16
桁数条件(範囲を求める)

\(10\)進法の整数\(N\)を\(2\)進法で表すと、ちょうど\(6\)桁になるという。\(N\)としてありうる値の最小値と最大値を求めよ。

最小値  最大値
解説を見る
ちょうど\(6\)桁になる条件は \(2^5 \le N \le 2^6-1\)。 \(2^5=32\)、\(2^6-1=63\) 最小値 \(32\)、最大値 \(63\)
応用問題(プリント限定)

ここから先はPDF限定の腕試し。n進法の考え方を、方程式・ゲーム・循環小数へと広げてみよう。

応1
n進法の方程式(桁を入れ替える)

\(0\)でない1桁の整数\(a,\ b\)(\(a \ne b\))について、\(7\)進法で\(ab_{(7)}\)と表される数の桁を入れ替えて\(5\)進法で\(ba_{(5)}\)と表すと、同じ値になるという。\(a,\ b\)を求めよ。

\(a=\)  \(b=\)
解説を見る
桁の範囲をまず確認する。\(ab_{(7)}\)の最上位の桁\(a\)は\(7\)進法の数字なので\(1 \le a \le 6\)、末尾の桁\(b\)は\(0 \le b \le 6\)。 \(ba_{(5)}\)の最上位の桁\(b\)は\(5\)進法の数字として\(1 \le b \le 4\)、末尾の桁\(a\)は\(0 \le a \le 4\)。 両方の条件をあわせると \(1 \le a \le 4\)、\(1 \le b \le 4\)。 値を比較する式を作る。\(ab_{(7)} = 7a+b\)、\(ba_{(5)} = 5b+a\)。これらが等しいので \(7a+b = 5b+a\) \(6a = 4b\) \(3a = 2b\) \(b\)が整数になるには\(a\)が偶数でなければならない。\(1 \le a \le 4\)の偶数は\(a=2\)と\(a=4\)。 \(a=2\)のとき \(b = \dfrac{3\times2}{2} = 3\)(範囲\(1\)〜\(4\)を満たす、OK) \(a=4\)のとき \(b = \dfrac{3\times4}{2} = 6\)(範囲\(1\)〜\(4\)を超えるので不適) よって\(a=2,\ b=3\)のみが条件を満たす。 (検算:\(ab_{(7)}=23_{(7)}=2\times7+3=17\)、\(ba_{(5)}=32_{(5)}=3\times5+2=17\)。一致する。) \(a=2,\ b=3\)
応2
2進法とゲーム:分銅の重さ量り分け

上皿てんびんがあり、分銅は片方の皿にだけ載せて重さを量る(分銅は自由に組み合わせてよい)。\(1\)kgから\(15\)kgまでのすべての整数の重さを量れるようにしたい。用意する分銅の個数を最も少なくするには、何kgの分銅をそれぞれ何個ずつ用意すればよいか。また、そのときの分銅の個数と重さの合計を求めよ。

分銅の個数 個 重さの合計 kg
解説を見る
分銅の重さを \(1,2,4,8,\ldots\) と\(2\)の累乗にすると、それぞれの分銅を「使う・使わない」の\(2\)通りで選ぶことになる。これはちょうど\(2\)進法の各桁が\(0\)か\(1\)かを選ぶことと同じなので、\(k\)個の分銅\(1,2,4,\ldots,2^{k-1}\)を使えば、\(1\)から\(2^k-1\)までのすべての整数がちょうど1通りの組み合わせで作れる(作りたい重さを\(2\)進法で表し、\(1\)が立っている桁の分銅を選べばよい)。 \(1\)kgから\(15\)kgまで量りたいので、\(2^k-1=15\)より\(k=4\)。よって分銅は\(1,2,4,8\)kgの\(4\)個を\(1\)個ずつ用意すればよい。 これより少ない\(3\)個の分銅では、作れる重さの組み合わせは最大でも\(2^3-1=7\)通りしかなく、\(15\)kgまでは量れない。よって\(4\)個が最少個数。 重さの合計は \(1+2+4+8=15\)kg。 \(1,2,4,8\)kgの分銅を\(1\)個ずつ、合計\(4\)個・\(15\)kg
応3
循環する小数

分数 \(\dfrac{1}{3}\) を\(2\)進法の小数で表すと循環小数になる。その循環節(くり返される数字の並び)の長さと、くり返される数字の並びを求めよ。

循環節の長さ  くり返される数字の並び
解説を見る
小数部分に\(2\)を掛けて整数部分を取り出す操作をくり返す。 \(\dfrac{1}{3}\times2 = \dfrac{2}{3} = 0.666\ldots\) → 整数部分\(0\)、残り\(\dfrac{2}{3}\) \(\dfrac{2}{3}\times2 = \dfrac{4}{3} = 1.333\ldots\) → 整数部分\(1\)、残り\(\dfrac{1}{3}\) 残りが最初の\(\dfrac{1}{3}\)に戻ったので、ここから先はまったく同じ計算が無限にくり返される。つまり整数部分は \(0,1,0,1,0,1,\ldots\) と「\(0,1\)」を単位にくり返す循環小数になる。 循環節の長さ\(2\)、くり返される数字の並びは「\(01\)」(\(\dfrac{1}{3}=0.\overline{01}_{(2)}\))
応4
2つの桁数条件を同時に満たす範囲

\(10\)進法の整数\(N\)を\(2\)進法で表すとちょうど\(7\)桁になり、\(3\)進法で表すとちょうど\(4\)桁になるという。このような\(N\)の最小値・最大値と、あてはまる\(N\)の個数を求めよ。

最小値  最大値  個数
解説を見る
それぞれの条件を桁数の公式 \(n^{k-1} \le N \le n^k-1\) にあてはめる。 \(2\)進法で\(7\)桁:\(2^6 \le N \le 2^7-1\) すなわち \(64 \le N \le 127\) \(3\)進法で\(4\)桁:\(3^3 \le N \le 3^4-1\) すなわち \(27 \le N \le 80\) 両方を同時に満たすのは、2つの範囲の共通部分。下限は大きい方の\(64\)、上限は小さい方の\(80\)を取るので \(64 \le N \le 80\) この範囲に含まれる整数の個数は \(80-64+1=17\)個。 最小値\(64\)、最大値\(80\)、個数\(17\)個
応5
基数nを求める方程式

ある自然数を\(n\)進法で表すと\(52_{(n)}\)となり、これを\(10\)進法で表すと\(42\)であるという。\(n\)を求めよ。

\(n=\)
解説を見る
\(52_{(n)}\)を\(10\)進法の式にすると \(5n+2\)。これが\(42\)に等しいので \(5n+2=42\) \(5n=40\) \(n=8\) なお、\(52_{(n)}\)には数字\(5\)が使われているので、\(n\)は\(5\)より大きい整数でなければならない(\(n \ge 6\))。\(n=8\)はこの条件を満たすので適する。 \(n=8\)