記数法の変換(整数)(n進法→10進法、10進法→n進法)、記数法の決定

我々が普段使っているのは10進法である. しかし,\ この基準(底)の10という数に数学的必然性はない. おそらく,\ 人間の両手の指が10本であったために10進法が主流になったのだろう. 10に数学的必然性がないのならば,\ 他の数を基準として数えた人達もいたはずである. 現在でも時間には60進法が用いられているし,\ 英語には12進数の名残も見られる. 10(ten),11(eleven),12(twelve),13(thirteen}),14(fourteen}),15(fifteen}),$$} また,\ コンピュータの世界では必然的に2進法が用いられる. ON・OFFの切り替えなど2値のみで動作でき,\ 構造が単純になるからである. 10進法に慣れすぎているだけで,\ 10を基準とすることが常に有利とは限らないのである. では,\ 他の数字を基準とする記数法を学習することにしよう. そもそも10進法とは,\ 数を0~9の10個の文字で表現する}ことである. 同様に,\ 2進法は0~1の2個,\ 3進法は0~2の3個,\ 5進法は0~4の5個}である. また,\ 0~9にA,\ Bを加えた12文字で表現するのが12進法}である. このように,\ 10を超えて数字が足りなくなればアルファベット(大文字)を含めて表す. さて,\ どうすれば限られた文字数で●の個数を表現できるだろうか. 次のように,\ 文字が足りなくなるたびに位を1つ上げていく}のが合理的である. この規則でいくと,\ 10進法では1が10個集まって10になるとき位が1つ上がる.} 10が10個集まって100になるとまた位が1つ上がる.} 100が10個集まって1000になるとさらに位が1つ上がる.}\ 以降も同様である. 文字数が10個しかないため,\ 10個そろうたびに位を上げるしかなくなるわけである. よって,\ 1,\ 10,\ 100,\ 1000,\ $$の位ができることになる. 結局,\ 10の累乗(${,\ 10³,\ 10²,\ 10^1,\ 10^0}$)を位取りの基本とするのが10進法である. 例えば,\ 10進法で表された2846は次のような意味合いをもつ. 同様に,\ 2進法では1が2個集まって2になるとき位が1つ上がる.} 2が2個集まって4になるとまた位が1つ上がる.} 4が2個集まって8になるとさらに位が1つ上がる.}\ 以降も同様である. 文字数が2個しかないため,\ 2個そろうたびに位を1つ上げるしかなくなるわけである. よって,\ 1,\ 2,\ 4,\ 8,\ $$の位ができることになる. 結局,\ 2の累乗(${,\ 2³,\ 2²,\ 2^1,\ 2^0}$)を位取りの基本とするのが2進法である. 例えば,\ 2進法で表された1101は次のような意味合いになる. なお,\ 複数の底を混同する可能性がある場合,\ 右下に括弧で底を明記する. このように,\ ${nの累乗(,\ n³,\ n²,\ n^1,\ n^0)を位取りの基本とするのが{n進法である.$ $n$が大きくなるほど必要な文字数が増えるが,\ 少ない桁数で大きな数を表せる. $1101_=13_$と同様にして,\ ${n}$進数→10進数の変換ができる. {10進数→${n}$進数の変換はどうすればよいだろうか. 例えば,\を2進数に変換することは,\ 次の$a₃,\ a₂,\ a₁,\ a₀$を特定することに等しい. 以下のように,\ 繰り返し2で割ることで${a₀}$から順に特定できる. 一般に,\ 割り算の結果は$(割られる数)=(割る数)(商)+(余り)}$と表せる. 両辺の余りの部分を比較すると$a₀=1}$となる. 次に,\ 商の部分のみ取り出し,\ $6=a₃2³+a₂2^1+a₁$として同じ手順を踏む. わかりづらいが,\ 所詮は繰り返し2で割っているだけなので,\ 次の筆算表記で簡潔になる. 2で1回割ったときの余りが$a₀$,\ 2回割ったときの余りが$a₁,\ $である. よって,\ 矢印のような順で数字を並べて$1101_$となる. 2進数以外の$n$進数への変換も同様,\ 繰り返し$n$で割ればよい. 5進法で143と表される数を2進法で表せ. 10進数を経由して2進数に変換する. 3進数2000は$n$進数312である.\ 自然数$n$を求めよ. 記数法の決定 それぞれ10進法表記に変換してから等式で結べばよい.
タイトルとURLをコピーしました