基数変換 10進法 2進法 8進法 16進法
ここでは「10進法↔2進法、8進法、16進法」、「2進法↔8進法、16進法」の基数変換を手計算でどのように実行するのか解説します。
2進法について全く聞いたことのない「基数?」「進法?」「位取り?」という人は(こちら)のリンクを先に見てください。
10進法の仕組みの理解から始まって、自然数の場合の変換だけではなく、小数や循環小数の場合の変換も扱います。
循環小数に関しては(こちら)のリンク先でも詳しく解説してますので参考にしてください。
とにかく位取り法の仕組みさえ分かってしまえばそれほど難しくありません。
最初は面倒臭くても、手を動かしながらじっくり計算を追っていくと良いでしょう。
その後に、自分で適当な数を設定して、自作の問題を何題か作ってやってみてください。
答え合わせにはプログラマ電卓や(こちら)のプログラムが使えます。
今は電卓やパソコンスマホがあるので、手計算の必要性は低くなってます。
情報処理関連の資格を取る場合は手計算による基数変換は必須です。
資格を取る予定ではない方も、一度はチャレンジしてみることをお勧めします。
手を動かしてみると位取りの仕組みが凄く上手くできてることが実感できます。
位取りの仕組みと指数
まずは位取り記数法の仕組みを理解することから始めていきます。
10進法の仕組みを知っておくことが重要です。
普段使っている数なので当たり前のように見えるかもしれませんが、歴史的には15世紀頃に確立したかなり新しい概念です。
他の基数を考える際の基本になります。
しっかり理解しましょう。
累乗指数を使うと桁の纏まりを非常に綺麗に表すことができます。
10進法の各桁は10の累乗の束(たば)を表しています。
束とはいくつかの数を一括りにして纏めたものです。
$10$の纏まりの束を$10^1$で表します。
$10$の束を$10$個まとめた$10\times 10=100$の束を$10^2$で表します。
$10$の束を$0$個まとめると$10^0=1$になります。
例として「$2036$」という10進数を考えてみましょう。
\begin{align*}
2036 &= 2\times 1000 + 0\times 100 + 3\times 10 + 6\times 1 \qquad &&\qquad\fbox{「$2036$」は「$2$個の$1000$の束」「$0$個の$100$の束」「$3$個の$10$の束」「$6$個の$1$の束」の合計} \\
&= 2\times 10^3 + 0\times 10^2 + 3\times 10^1 + 6\times 10^0 \qquad &&\qquad\fbox{累乗指数を用いると「$1000=10^3$」、「$100=10^2$」、「$10=10^1$」、「$1=10^0$」}
\end{align*}
0以上で1より小さい数の概念を位取り法を使って表現した数を「小数」といいます。
指数法則によって、負の指数を用いて逆数を表すことができるようになります。
負の累乗指数を使うことで小数の桁の纏まりを綺麗に扱うことができます。
例として「$20.36$」という10進法の小数を考えてみましょう。
\begin{align*}
20.36 &= 2\times 10 + 0\times 1 + 3\times 0.1 + 6\times 0.01 \qquad &&\qquad\fbox{「$20.36$」は「$2$個の$10$の束」「$0$個の$1$の束」「$3$個の$0.1$の束」「$6$個の$0.01$の束」の合計} \\
&= 2\times 10 + 0\times 1 + 3\times \frac{1}{10} + 6\times \frac{1}{100} \qquad &&\qquad\fbox{分数を用いると「$0.1=\frac{1}{10}$」、「$0.01=\frac{1}{100}$」}\\
&= 2\times 10^1 + 0\times 10^0 + 3\times 10^{-1} + 6\times 10^{-2} \qquad &&\qquad\fbox{累乗指数を用いると「$10=10^1$」「$1=10^0$」「$\frac{1}{10}=10^{-1}$」「$\frac{1}{100}=10^{-2}$」}
\end{align*}
指数法則を使うと、掛け算や割り算が指数の足し算や引き算で実行できるようになるので、計算過程の見通しが良くなります。
$10=10^1$ を掛けることで、$10$ の指数が一つずつ増えて、小数点が一つ右に移ります。
\begin{align*}
20.36\times 10^1 &= \left(2\times 10^1 + 0\times 10^0 + 3\times 10^{-1} + 6\times 10^{-2}\right)\times 10^1 \qquad &&\qquad\fbox{「$20.36$」を$10$の累乗の展開式で表した} \\
&= 2\times 10^1\times 10^1 + 0\times 10^0\times 10^1 + 3\times 10^{-1}\times 10^1 + 6\times 10^{-2}\times 10^1 \qquad &&\qquad\fbox{分配法則「$(a+b)\times c=a\times c + b\times c$」を使った} \\
&= 2\times 10^{1+1} + 0\times 10^{0+1} + 3\times 10^{-1+1} + 6\times 10^{-2+1} \qquad &&\qquad\fbox{指数法則「$10^a\times 10^b =10^{a+b}$」を使った} \\
&= 2\times 10^2 + 0\times 10^1 + 3\times 10^0 + 6\times 10^{-1} \qquad &&\qquad\fbox{指数部分の足し算を計算した} \\
&= 203.6 &&\qquad\fbox{小数表示にすると、小数点が一つ右に移動していることが分かる} \\
\end{align*}
$10$ で割る($10^{-1}$ を掛ける)ことで、$10$ の指数が一つずつ減って、小数点が一つ左に動きます。
\begin{align*}
20.36\times 10^{-1} &= \left(2\times 10^1 + 0\times 10^0 + 3\times 10^{-1} + 6\times 10^{-2}\right)\times 10^{-1} \qquad &&\qquad\fbox{「$20.36$」を$10$の累乗の展開式で表した} \\
&= 2\times 10^1\times 10^{-1} + 0\times 10^0\times 10^{-1} + 3\times 10^{-1}\times 10^{-1} + 6\times 10^{-2}\times 10^{-1} \qquad &&\qquad\fbox{分配法則「$(a+b)\times c=a\times c + b\times c$」を使った} \\
&= 2\times 10^{1-1} + 0\times 10^{0-1} + 3\times 10^{-1-1} + 6\times 10^{-2-1} \qquad &&\qquad\fbox{指数法則「$10^a\times 10^b =10^{a+b}$」を使った} \\
&= 2\times 10^0 + 0\times 10^{-1} + 3\times 10^{-2} + 6\times 10^{-3} \qquad &&\qquad\fbox{指数部分の引き算を計算した} \\
&= 2.036 &&\qquad\fbox{小数表示にすると、小数点が一つ左に移動していることが分かる}
\end{align*}
自然数の各桁の値を取り出す方法
10進法の自然数の各桁の値を知るには、$10$ で割った余りを順々に見ていけば分かります。
例として10進数の「$3507$」の各桁の値を $10$ で割り算をしていって求めてみましょう。
\begin{align*}
\require{enclose}
\begin{array}{rlll}
10 )\!\enclose{bottom}{3507} & & \qquad &\qquad\fbox{「$3507$」を「$10$」で割る} \\
10 )\!\enclose{bottom}{\phantom{0}350} & \cdots 7 & \quad \rightarrow 10^0\mbox{の桁の値は}7 &\qquad\fbox{商は「$350$」余りは「$7$」、この余りから「$3507$の$10^0$の桁の値は$7$」だと分かる} \\
10 )\!\enclose{bottom}{\phantom{00}35} & \cdots 0 & \quad \rightarrow 10^1\mbox{の桁の値は}0 &\qquad \fbox{ひとつ前の商「$350$」を「$10$」で割ると、商は「$35$」余りは「$0$」、この余りから「$3507$の$10^1$の桁の値は$0$」だと分かる} \\
10 )\!\enclose{bottom}{\phantom{000}3} & \cdots 5 & \quad \rightarrow 10^2\mbox{の桁の値は}5 &\qquad \fbox{ひとつ前の商「$35$」を「$10$」で割ると、商は「$3$」余りは「$5$」、この余りから「$3507$の$10^2$の桁の値は$5$」だと分かる} \\
\phantom{10 )}\!\enclose{}{\phantom{000}0} & \cdots 3 & \quad \rightarrow 10^3\mbox{の桁の値は}3 &\qquad \fbox{ひとつ前の商「$3$」を「$10$」で割ると、商は「$0$」余りは「$3$」、この余りから「$3507$の$10^3$の桁の値は$3$」だと分かる} \\
& & &\qquad\fbox{商が「$0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
ちなみに上記の計算を指数表記で眺めると次のようになります。
$10$ で割るということは $10^{-1}$ を掛けるのと同じです。
$10^{-1}$ を掛けると各桁の $10$ の指数が1つずつ減ります。
その結果、$\color{blue}{\mbox{商}}$の部分と$\color{red}{\mbox{余り}}$の部分に色分けされます。
$\color{red}{\mbox{余り}}$を順々に取り出すことで各桁の値が分かる、ということになります。
\begin{align*}
\begin{array}{rll}
3507 &= 3\cdot 10^3+5\cdot 10^2+0\cdot 10^1+7\cdot 10^0 & \\
3507\cdot 10^{-1} &= \color{blue}{3\cdot 10^2+5\cdot 10^1+0\cdot 10^0}+\color{red}{7\cdot 10^{-1}} &= \color{blue}{350}.\color{red}{7}\\
350\cdot 10^{-1} &= \color{blue}{3\cdot 10^1+5\cdot 10^0}+\color{red}{0\cdot 10^{-1}} &= \color{blue}{35}.\color{red}{0} \\
35\cdot 10^{-1} &= \color{blue}{3\cdot 10^0}+\color{red}{5\cdot 10^{-1}} &= \color{blue}{3}.\color{red}{5} \\
3\cdot 10^{-1} &= \color{red}{3\cdot 10^{-1}} &= \color{blue}{0}.\color{red}{3}
\end{array}
\end{align*}
10進法の自然数の各桁の値を知るためには $10$ で割って余りを順々に取り出していけば良いことが分かりました。
N進法の自然数の各桁の値を知るためには $N$ で割って余りを順々に取り出していけば良いことになります。
純小数の各桁の値を取り出す方法
整数部が $0$ の小数、つまり $0$ より大きく $1$ 未満の数のことを純小数や真小数といいます。
10進法の純小数の各桁の値は、$10$ を掛けた時の整数部を順々に見ていけば分かります。
例として10進数の「$0.3507$」という数値の各桁の値を $10$ で掛け算をしていって求めてみましょう。
\begin{align*}
\begin{array}{rllll}
0.3507\times 10 &= 3.507 &= 3 + 0.507 &\rightarrow 10^{-1}\mbox{の桁の値は}3 &\qquad\fbox{「$0.3507$」に「$10$」を掛けると、整数部は「$3$」小数部は「$0.507$」、この整数部から「$10^{-1}$の桁の値は$3$」だと分かる} \\
0.507\times 10 &= 5.07 &= 5 + 0.07 &\rightarrow 10^{-2}\mbox{の桁の値は}5 &\qquad\fbox{ひとつ前の小数部「$0.507$」に「$10$」を掛けると、整数部は「$5$」小数部は「$0.07$」、この整数部から「$10^{-2}$の桁の値は$5$」だと分かる} \\
0.07\times 10 &= 0.7 &= 0 + 0.7 &\rightarrow 10^{-3}\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の小数部「$0.07$」に「$10$」を掛けると、整数部は「$0$」小数部は「$0.7$」、この整数部から「$10^{-3}$の桁の値は$0$」だと分かる} \\
0.7\times 10 &= 7.0 &= 7 + 0.0 &\rightarrow 10^{-4}\mbox{の桁の値は}7 &\qquad\fbox{ひとつ前の小数部「$0.7$」に「$10$」を掛けると、整数部は「$7$」小数部は「$0.0$」、この整数部から「$10^{-4}$の桁の値は$7$」だと分かる} \\
& & & &\qquad\fbox{小数部が「$0.0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
ちなみに上記の計算を指数表記で眺めると次のようになります。
$10$ を掛けるということは $10^1$ を掛けるのと同じです。
$10^1$ を掛けると各桁の $10$ の指数が1つずつ増えます。
その結果、$\color{blue}{\mbox{整数部}}$と$\color{red}{\mbox{小数部}}$に色分けされます。
$\color{blue}{\mbox{整数部}}$を順々に取り出すことで各桁の値が分かる、ということになります。
\begin{align*}
\begin{array}{rll}
0.3507 &= 3\cdot 10^{-1}+5\cdot 10^{-2}+0\cdot 10^{-3}+7\cdot 10^{-4} & \\
0.3507\cdot 10^1 &= \color{blue}{3\cdot 10^0}+\color{red}{5\cdot 10^{-1}+0\cdot 10^{-2}+7\cdot 10^{-3}} &= \color{blue}{3}.\color{red}{507} \\
0.507\cdot 10^1 &= \color{blue}{5\cdot 10^0}+\color{red}{0\cdot 10^{-1}+7\cdot 10^{-2}} &= \color{blue}{5}.\color{red}{07} \\
0.07\cdot 10^1 &= \color{blue}{0\cdot 10^0}+\color{red}{7\cdot 10^{-1}} &= \color{blue}{0}.\color{red}{7} \\
0.7\cdot 10^1 &= \color{blue}{7\cdot 10^0} &= \color{blue}{7}.\color{red}{0}
\end{array}
\end{align*}
10進法の純小数の各桁の値を知るためには $10$ を掛けて整数部を順々に取り出していけば良いことが分かりました。
N進法の純小数の各桁の値を知るためには $N$ を掛けて整数部を順々に取り出していけば良いことになります。
2進数自然数から10進数自然数への変換
2進法の各桁は2の累乗の束を表しています。
例えば「$10101$」という2進数は下枠のように10進数に変換することができます。
つまり「2進数の$10101$」と「10進数の$21$」は同じ数値を表しているということになります。
\begin{align*}
\mbox{(2進法)}\;10101 \rightarrow & 1\cdot 2^4 + 0\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 1\cdot 2^0\;\mbox{(10進法)} &&\qquad\fbox{2進法の「$10101$」は、10進法で考えると「$1$個の$2^4$の束」「$0$個の$2^3$の束」「$1$個の$2^2$の束」「$0$個の$2^1$の束」「$1$個の$2^0$の束」の合計} \\
&= 1\cdot 16 + 0\cdot 8 + 1\cdot 4 + 0\cdot 2 + 1\cdot 1 &&\qquad\fbox{累乗を計算すると「$2^4=16$」「$2^3=8$」「$2^2=4$」「$2^1=2$」「$2^0=1$」} \\
&= 16 + 4 + 1 &&\qquad\fbox{各項の掛け算を実行} \\
&= 21 &&\qquad\fbox{合計すると、10進法で「$21$」になることが分かる}
\end{align*}
上記の右側の式は10進法であることに注意してください。
10進法の「$2$(ニ)」は2進法では「$10$(イチ・ゼロ)」になります。
10進法の「$3$(サン)」は2進法では「$11$(イチ・イチ)」になります。
10進法の「$4$(ヨン)」は2進法では「$100$(イチ・ゼロ・ゼロ)」になります。
次枠の上下の対応で、同じ数値(左辺)や同じ展開式(右辺)を表現していることになります。
\begin{align*}
\mbox{(2進法)}&&10101 &= 1\cdot 10^{100} + 0\cdot 10^{11} + 1\cdot 10^{10} + 0\cdot 10^1 + 1\cdot 10^0 \\
&&&\updownarrow \\
\mbox{(10進法)}&&21 &= 1\cdot 2^4 + 0\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 1\cdot 2^0
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[2]進法の自然数に設定し、分子に[10101]を、分母に[1]を入力して、[10]進法の分数に[変換]ボタンを押してみましょう。
2進数小数から10進数小数への変換
例えば、小数点付きの「$10.101$」という2進数は下枠のように10進数に変換することができます。
つまり「2進数の$10.101$」と「10進数の$2.625$」は同じ数値を表しているということになります。
\begin{align*}
\mbox{(2進法)}\;10.101 \rightarrow & 1\cdot 2^1 + 0\cdot 2^0 + 1\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3}\;\mbox{(10進法)} &&\qquad\fbox{2進法の「$10.101$」は、10進法で考えると「$1$個の$2^1$の束」「$0$個の$2^0$の束」「$1$個の$2^{-1}$の束」「$0$個の$2^{-2}$の束」「$1$個の$2^{-3}$の束」の合計} \\
&= 1\cdot 2 + 0\cdot 1 + 1\cdot \frac{1}{2} + 0\cdot \frac{1}{4} + 1\cdot \frac{1}{8} &&\qquad\fbox{累乗を計算すると「$2^1=2$」、「$2^0=1$」、「$2^{-1}=\frac{1}{2}$」、「$2^{-2}=\frac{1}{4}$」、「$2^{-3}=\frac{1}{8}$」} \\
&= 1\cdot 2 + 0\cdot 1 + 1\cdot 0.5 + 0\cdot 0.25 + 1\cdot 0.125 &&\qquad\fbox{分数を小数にすると「$\frac{1}{2}=0.5$」、「$\frac{1}{4}=0.25$」、「$\frac{1}{8}=0.125$」} \\
&= 2 + 0.5 + 0.125 &&\qquad\fbox{各項の掛け算を実行} \\
&= 2.625 &&\qquad\fbox{合計すると、10進法で「$2.625$」になることが分かる}
\end{align*}
上記の右側の式は10進法であることに注意してください。
10進法の「$2$(ニ)」は2進法では「$10$(イチ・ゼロ)」になります。
10進法の「$3$(サン)」は2進法では「$11$(イチ・イチ)」になります。
次枠の上下の対応で、同じ数値(左辺)や同じ展開式(右辺)を表現していることになります。
\begin{align*}
\mbox{(2進法)}&&10.101 &= 1\cdot 10^1 + 0\cdot 10^0 + 1\cdot 10^{-1} + 0\cdot 10^{-10} + 1\cdot 10^{-11} \\
&&&\updownarrow \\
\mbox{(10進法)}&&2.625 &= 1\cdot 2^1 + 0\cdot 2^0 + 1\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[2]進法の自然数に設定し、分子に[10101]を、分母に[1000]を入力して、上の分数を[10]進法の小数に[変換]ボタンを押してみましょう。
10進数自然数から2進数自然数への変換
2進法の自然数の各桁の値は、2で割った余りを順々に見ていけば分かります。
これを利用して、10進法の自然数を2進法の自然数に変換することができます。
例えば10進数の「$109$」は下枠のように2進数に変換できます。
つまり「10進数の$109$」と「2進数の$1101101$」は同じ数値を表しているということになります。
\begin{align*}
\require{enclose}
\begin{array}{rlll}
2 )\!\enclose{bottom}{109} & & &\qquad\fbox{「$109$」を「$2$」で割る} \\
2 )\!\enclose{bottom}{\phantom{0}54} & \cdots 1 & \quad \rightarrow 2^0\mbox{の桁の値は}1 &\qquad\fbox{商は「$54$」余りは「$1$」、この余りから「$2^0$の桁の値は$1$」だと分かる} \\
2 )\!\enclose{bottom}{\phantom{0}27} & \cdots 0 & \quad \rightarrow 2^1\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の商の「$54$」を「$2$」で割ると、商は「$27$」余りは「$0$」、この余りから「$2^1$の桁の値は$0$」だと分かる} \\
2 )\!\enclose{bottom}{\phantom{0}13} & \cdots 1 & \quad \rightarrow 2^2\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の商の「$27$」を「$2$」で割ると、商は「$13$」余りは「$1$」、この余りから「$2^2$の桁の値は$1$」だと分かる} \\
2 )\!\enclose{bottom}{\phantom{00}6} & \cdots 1 & \quad \rightarrow 2^3\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の商の「$13$」を「$2$」で割ると、商は「$6$」余りは「$1$」、この余りから「$2^3$の桁の値は$1$」だと分かる} \\
2 )\!\enclose{bottom}{\phantom{00}3} & \cdots 0 & \quad \rightarrow 2^4\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の商の「$6$」を「$2$」で割ると、商は「$3$」余りは「$0$」、この余りから「$2^4$の桁の値は$0$」だと分かる} \\
2 )\!\enclose{bottom}{\phantom{00}1} & \cdots 1 & \quad \rightarrow 2^5\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の商の「$3$」を「$2$」で割ると、商は「$1$」余りは「$1$」、この余りから「$2^5$の桁の値は$1$」だと分かる} \\
\phantom{2 )}\!\enclose{}{\phantom{00}0} & \cdots 1 & \quad \rightarrow 2^6\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の商の「$1$」を「$2$」で割ると、商は「$0$」余りは「$1$」、この余りから「$2^6$の桁の値は$1$」だと分かる} \\
& & &\qquad\fbox{商が「$0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;109 \rightarrow 1101101\;\mbox{(2進法)} \qquad\fbox{余りの部分を下から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
109 &= 54\cdot 2 + 1 &&\qquad\fbox{「$109$」を「$2$」で割ると、商は「$54$」余りは「$1$」から得られる式} \\
54 &= 27\cdot 2 + 0 &&\qquad\fbox{「$54$」を「$2$」で割ると、商は「$27$」余りは「$0$」から得られる式}\\
27 &= 13\cdot 2 + 1 &&\qquad\fbox{「$27$」を「$2$」で割ると、商は「$13$」余りは「$1$」から得られる式} \\
13 &= 6\cdot 2 + 1 &&\qquad\fbox{「$13$」を「$2$」で割ると、商は「$6$」余りは「$1$」から得られる式} \\
6 &= 3\cdot 2 + 0 &&\qquad\fbox{「$6$」を「$2$」で割ると、商は「$3$」余りは「$0$」から得られる式} \\
3 &= 1\cdot 2 + 1 &&\qquad\fbox{「$3$」を「$2$」で割ると、商は「$1$」余りは「$1$」から得られる式}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を2の累乗で展開した式が得られるわけです。
\begin{align*}
109 &= 54\cdot 2 + 1 \\
&= \left(27\cdot 2 + 0\right)\cdot 2 + 1 \qquad \fbox{$54 = 27\cdot 2 + 0$ で置き換えた} \\
&= 27\cdot 2^2 + 0\cdot 2 + 1 \\
&= \left(13\cdot 2 + 1\right)\cdot 2^2 + 0\cdot 2 + 1 \qquad \fbox{$27 = 13\cdot 2 + 1$ で置き換えた} \\
&= 13\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \\
&= \left(6\cdot 2 + 1\right)\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \qquad \fbox{$13 = 6\cdot 2 + 1$ で置き換えた} \\
&= 6\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \\
&= \left(3\cdot 2 + 0\right)\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \qquad \fbox{$6 = 3\cdot 2 + 0$ で置き換えた} \\
&= 3\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \\
&= \left(1\cdot 2 + 1\right)\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \qquad \fbox{$3 = 1\cdot 2 + 1$ で置き換えた} \\
&= 1\cdot 2^6 + 1\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2 + 1 \\
&= 1\cdot 2^6 + 1\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 1\cdot 2^0
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[109]を、分母に[1]を入力して、[2]進法の分数に[変換]ボタンを押してみましょう。
10進数純小数から2進数純小数への変換
2進法の純小数の各桁の値は、2を掛けた時の整数部を順々に見ていけば分かります。
これを利用して10進法の純小数を2進法の純小数に変換することができます。
例えば10進数の「$0.40625$」は下枠のように2進数に変換できます。
つまり「10進数の$0.40625$」と「2進数の$0.01101$」は同じ数値を表しているということになります。
\begin{align*}
\begin{array}{rllll}
0.40625\times 2 &= 0.8125 &= 0 + 0.8125 &\rightarrow 2^{-1}\mbox{の桁の値は}0 &\qquad\fbox{「$0.40625$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.8125$」、この整数部から「$2^{-1}$の桁の値は$0$」だと分かる} \\
0.8125\times 2 &= 1.625 &= 1 + 0.625 &\rightarrow 2^{-2}\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の小数部「$0.8125$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.625$」、この整数部から「$2^{-2}$の桁の値は$1$」だと分かる} \\
0.625\times 2 &= 1.25 &= 1 + 0.25 &\rightarrow 2^{-3}\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の小数部「$0.625$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.25$」、この整数部から「$2^{-3}$の桁の値は$1$」だと分かる} \\
0.25\times 2 &= 0.5 &= 0 + 0.5 &\rightarrow 2^{-4}\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の小数部「$0.25$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.5$」、この整数部から「$2^{-4}$の桁の値は$0$」だと分かる} \\
0.5\times 2 &= 1.0 &= 1 + 0.0 &\rightarrow 2^{-5}\mbox{の桁の値は}1 &\qquad\fbox{ひとつ前の小数部「$0.5$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.0$」、この整数部から「$2^{-5}$の桁の値は$1$」だと分かる} \\
& & & &\qquad\fbox{小数部が「$0.0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;0.40625 \rightarrow 0.01101\;\mbox{(2進法)} \qquad\fbox{小数点以降に整数部を上から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rllll}
0.40625 &= 0.40625\cdot 2\cdot 2^{-1} &= \left(0 + 0.8125\right)\cdot 2^{-1} &= 0\cdot 2^{-1} + 0.8125\cdot 2^{-1} &\qquad\fbox{「$0.40625$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.8125$」から得られる式} \\
0.8125 &= 0.8125\cdot 2\cdot 2^{-1} &= \left(1 + 0.625\right)\cdot 2^{-1} &= 1\cdot 2^{-1} + 0.625\cdot 2^{-1} &\qquad\fbox{「$0.8125$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.625$」から得られる式} \\
0.625 &= 0.625\cdot 2\cdot 2^{-1} &= \left(1 + 0.25\right)\cdot 2^{-1} &= 1\cdot 2^{-1} + 0.25\cdot 2^{-1} &\qquad\fbox{「$0.625$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.25$」から得られる式} \\
0.25 &= 0.25\cdot 2\cdot 2^{-1} &= \left(0 + 0.5\right)\cdot 2^{-1} &= 0\cdot 2^{-1} + 0.5\cdot 2^{-1} &\qquad\fbox{「$0.25$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.5$」から得られる式} \\
0.5 &= 0.5\cdot 2\cdot 2^{-1} &= 1\cdot 2^{-1} & &\qquad\fbox{「$0.5$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.0$」から得られる式}
\end{array}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を2の累乗で展開した式が得られるわけです。
\begin{align*}
0.40625 &= 0\cdot 2^{-1} + 0.8125\cdot 2^{-1} \\
&= 0\cdot 2^{-1} + \left(1\cdot 2^{-1} + 0.625\cdot 2^{-1}\right)\cdot 2^{-1} \qquad \fbox{$0.8125 = 1\cdot 2^{-1} + 0.625\cdot 2^{-1}$ で置き換えた} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 0.625\cdot 2^{-2} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + \left(1\cdot 2^{-1} + 0.25\cdot 2^{-1}\right)\cdot 2^{-2} \qquad \fbox{$0.625 = 1\cdot 2^{-1} + 0.25\cdot 2^{-1}$ で置き換えた} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0.25\cdot 2^{-3} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + \left(0\cdot 2^{-1} + 0.5\cdot 2^{-1}\right)\cdot 2^{-3} \qquad \fbox{$0.25 = 0\cdot 2^{-1} + 0.5\cdot 2^{-1}$ で置き換えた} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} + 0.5\cdot 2^{-4} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} + \left(1\cdot 2^{-1}\right)\cdot 2^{-4} \qquad \fbox{$0.5 = 1\cdot 2^{-1}$ で置き換えた} \\
&= 0\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} + 1\cdot 2^{-5}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[40625]を、分母に[100000]を入力して、上の分数を[2]進法の小数に[変換]ボタンを押してみましょう。
10進数純小数から2進数純小数(循環小数)への変換
有限小数の10進数が循環小数の2進数になる場合があります。
例えば10進数の「$0.1$」は下枠のように2進数に変換できます。
つまり「10進数の$0.1$」と「2進数の循環小数$0.0\dot{0}01\dot{1}$」は同じ数値を表しているということになります。
上にドットがついた数値「$0011$」のパターンを無限に繰り返す循環小数です。
\begin{align*}
\begin{array}{rllll}
0.1\times 2 &= 0.2 &= 0 + \color{red}{0.2} &\rightarrow 2^{-1}\mbox{の桁の値は}0 &\qquad\fbox{「$0.1$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.2$」、この整数部から「$2^{-1}$の桁の値は$0$」だと分かる} \\
\color{red}{0.2}\times 2 &= 0.4 &= \color{blue}{0} + 0.4 &\rightarrow 2^{-2}\mbox{の桁の値は}\color{blue}{0} &\qquad\fbox{ひとつ前の小数部「$0.2$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.4$」、この整数部から「$2^{-2}$の桁の値は$0$」だと分かる} \\
0.4\times 2 &= 0.8 &= \color{blue}{0} + 0.8 &\rightarrow 2^{-3}\mbox{の桁の値は}\color{blue}{0} &\qquad\fbox{ひとつ前の小数部「$0.4$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.8$」、この整数部から「$2^{-3}$の桁の値は$0$」だと分かる} \\
0.8\times 2 &= 1.6 &= \color{blue}{1} + 0.6 &\rightarrow 2^{-4}\mbox{の桁の値は}\color{blue}{1} &\qquad\fbox{ひとつ前の小数部「$0.8$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.6$」、この整数部から「$2^{-3}$の桁の値は$1$」だと分かる} \\
0.6\times 2 &= 1.2 &= \color{blue}{1} + \color{red}{0.2} &\rightarrow 2^{-5}\mbox{の桁の値は}\color{blue}{1} &\qquad\fbox{ひとつ前の小数部「$0.6$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.2$」、この整数部から「$2^{-4}$の桁の値は$1$」だと分かる} \\
& & & &\qquad\fbox{小数部「$\color{red}{0.2}$」はすでに出てきている小数部なので、次の段階に進んでも同じパターンを繰り返すだけ} \\
& & & &\qquad\fbox{これ以降の整数部の値は「$\color{blue}{0011}$」のパターンを無限に繰り返す}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法の有限小数)}\;0.1 \rightarrow 0.0\,\color{blue}{0011}\,\color{blue}{0011}\,\color{blue}{0011}\,\color{blue}{0011}\color{blue}{\cdots}\;\mbox{(2進法の循環小数)}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rllll}
0.1 &= 0.1\cdot 2\cdot 2^{-1} &= \left(0 + \color{red}{0.2}\right)\cdot 2^{-1} &= 0\cdot 2^{-1} + \color{red}{0.2}\cdot 2^{-1} &\qquad\fbox{「$0.1$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.2$」から得られる式} \\
\color{red}{0.2} &= 0.2\cdot 2\cdot 2^{-1} &= \left(\color{blue}{0} + 0.4\right)\cdot 2^{-1} &= \color{blue}{0}\cdot 2^{-1} + 0.4\cdot 2^{-1} &\qquad\fbox{「$0.2$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.4$」から得られる式} \\
0.4 &= 0.4\cdot 2\cdot 2^{-1} &= \left(\color{blue}{0} + 0.8\right)\cdot 2^{-1} &= \color{blue}{0}\cdot 2^{-1} + 0.8\cdot 2^{-1} &\qquad\fbox{「$0.4$」に「$2$」を掛けると、整数部は「$0$」小数部は「$0.8$」から得られる式} \\
0.8 &= 0.8\cdot 2\cdot 2^{-1} &= \left(\color{blue}{1} + 0.6\right)\cdot 2^{-1} &= \color{blue}{1}\cdot 2^{-1} + 0.6\cdot 2^{-1} &\qquad\fbox{「$0.8$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.6$」から得られる式が下式} \\
0.6 &= 0.6\cdot 2\cdot 2^{-1} &= \left(\color{blue}{1} + \color{red}{0.2}\right)\cdot 2^{-1} &= \color{blue}{1}\cdot 2^{-1} + \color{red}{0.2}\cdot 2^{-1} &\qquad\fbox{「$0.6$」に「$2$」を掛けると、整数部は「$1$」小数部は「$0.2$」から得られる式}
\end{array}
\end{align*}
これらの式を組み合わせていきます。
まずは $\color{red}{0.2}$ に注目します。
\begin{align*}
\color{red}{0.2} &= \color{blue}{0}\cdot 2^{-1} + 0.4\cdot 2^{-1} \\
&= \color{blue}{0}\cdot 2^{-1} + \left(\color{blue}{0}\cdot 2^{-1} + 0.8\cdot 2^{-1}\right)\cdot 2^{-1} \qquad \fbox{$0.4 = \color{blue}{0}\cdot 2^{-1} + 0.8\cdot 2^{-1}$ で置き換えた} \\
&= \color{blue}{0}\cdot 2^{-1} + \color{blue}{0}\cdot 2^{-2} + 0.8\cdot 2^{-2} \\
&= \color{blue}{0}\cdot 2^{-1} + \color{blue}{0}\cdot 2^{-2} + \left(\color{blue}{1}\cdot 2^{-1} + 0.6\cdot 2^{-1}\right)\cdot 2^{-2} \qquad \fbox{$0.8 = \color{blue}{1}\cdot 2^{-1} + 0.6\cdot 2^{-1}$ で置き換えた} \\
&= \color{blue}{0}\cdot 2^{-1} + \color{blue}{0}\cdot 2^{-2} + \color{blue}{1}\cdot 2^{-3} + 0.6\cdot 2^{-3} \\
&= \color{blue}{0}\cdot 2^{-1} + \color{blue}{0}\cdot 2^{-2} + \color{blue}{1}\cdot 2^{-3} + \left(\color{blue}{1}\cdot 2^{-1} + \color{red}{0.2}\cdot 2^{-1}\right)\cdot 2^{-3} \qquad \fbox{$0.6 = \color{blue}{1}\cdot 2^{-1} + \color{red}{0.2}\cdot 2^{-1}$ で置き換えた} \\
&= \color{blue}{0}\cdot 2^{-1} + \color{blue}{0}\cdot 2^{-2} + \color{blue}{1}\cdot 2^{-3} + \color{blue}{1}\cdot 2^{-4} + \color{red}{0.2}\cdot 2^{-4}
\end{align*}
結果、次のような $\color{red}{0.2}$ を表す式の中に $\color{red}{0.2}$ が入っている式が得られます。
このような自分の中に自分が入っている式が、無限に同じパターンを繰り返す循環節を生み出す元になります。
\begin{align*}
\color{red}{0.2} = \color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}
\end{align*}
10進数の $0.1$ を2の累乗で展開した式は次のようになります。
\begin{align*}
0.1 &= 0\cdot 2^{-1} + \color{red}{0.2}\cdot 2^{-1} \\
&= 0\cdot 2^{-1} + \left(\color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}\right)\cdot 2^{-1} \qquad \fbox{$\color{red}{0.2} = \color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}$ で置き換えた} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{red}{0.2}\cdot 2^{-5} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \left(\color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}\right)\cdot 2^{-5} \qquad \fbox{$\color{red}{0.2} = \color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}$ で置き換えた} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{blue}{0\cdot 2^{-6} + 0\cdot 2^{-7} + 1\cdot 2^{-8} + 1\cdot 2^{-9}} + \color{red}{0.2}\cdot 2^{-9} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{blue}{0\cdot 2^{-6} + 0\cdot 2^{-7} + 1\cdot 2^{-8} + 1\cdot 2^{-9}} + \left(\color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}\right)\cdot 2^{-9} \qquad \fbox{$\color{red}{0.2} = \color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}$ で置き換えた} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{blue}{0\cdot 2^{-6} + 0\cdot 2^{-7} + 1\cdot 2^{-8} + 1\cdot 2^{-9}} + \color{blue}{0\cdot 2^{-10} + 0\cdot 2^{-11} + 1\cdot 2^{-12} + 1\cdot 2^{-13}} + \color{red}{0.2}\cdot 2^{-13} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{blue}{0\cdot 2^{-6} + 0\cdot 2^{-7} + 1\cdot 2^{-8} + 1\cdot 2^{-9}} + \color{blue}{0\cdot 2^{-10} + 0\cdot 2^{-11} + 1\cdot 2^{-12} + 1\cdot 2^{-13}} + \left(\color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}\right)\cdot 2^{-13} \qquad \fbox{$\color{red}{0.2} = \color{blue}{0\cdot 2^{-1} + 0\cdot 2^{-2} + 1\cdot 2^{-3} + 1\cdot 2^{-4}} + \color{red}{0.2}\cdot 2^{-4}$ で置き換えた} \\
&= 0\cdot 2^{-1} + \color{blue}{0\cdot 2^{-2} + 0\cdot 2^{-3} + 1\cdot 2^{-4} + 1\cdot 2^{-5}} + \color{blue}{0\cdot 2^{-6} + 0\cdot 2^{-7} + 1\cdot 2^{-8} + 1\cdot 2^{-9}} + \color{blue}{0\cdot 2^{-10} + 0\cdot 2^{-11} + 1\cdot 2^{-12} + 1\cdot 2^{-13}} + \color{blue}{0\cdot 2^{-14} + 0\cdot 2^{-15} + 1\cdot 2^{-16} + 1\cdot 2^{-17}} + \color{red}{0.2}\cdot 2^{-17} \\
&\vdots \qquad \fbox{同じ処理の繰り返しが無限に続く}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[1]を、分母に[10]を入力して、上の分数を[2]進法の小数に[変換]ボタンを押してみましょう。
16進法の各桁は16の累乗の束を表しています。
例えば小数点付きの「$\rm 5c6.e2$」という16進数は下枠のように10進数に変換することができます。
つまり「16進数の$\rm 5c6.e2$」と「10進数の$1478.8828125$」は同じ数値を表しているということになります。
\begin{align*}
\mbox{(16進法)}\;\rm 5c6.e2 \rightarrow & 5\cdot 16^2 + 12\cdot 16^1 + 6\cdot 16^0 + 14\cdot 16^{-1} + 2\cdot 16^{-2}\;\mbox{(10進法)} &&\qquad\fbox{16進法の「$\rm 5c6.e2$」は、10進法で考えると「$5$個の$16^2$の束」「$12$個の$16^1$の束」「$6$個の$16^0$の束」「$14$個の$16^{-1}$の束」「$2$個の$16^{-2}$の束」の合計} \\
&= 5\cdot 256 + 12\cdot 16 + 6\cdot 1 + 14\cdot \frac{1}{16} + 2\cdot \frac{1}{256} &&\qquad\fbox{累乗を計算すると「$16^2=256$」、「$16^1=16$」、「$16^0=1$」、「$16^{-1}=\frac{1}{16}$」、「$16^{-2}=\frac{1}{256}$」} \\
&= 5\cdot 256 + 12\cdot 16 + 6\cdot 1 + 14\cdot 0.0625 + 2\cdot 0.00390625 &&\qquad\fbox{分数を小数にすると「$\frac{1}{16}=0.625$」、「$\frac{1}{256}=0.0039625$」} \\
&= 1280 + 192 + 6 + 0.875 + 0.0078125 &&\qquad\fbox{各項の掛け算を実行} \\
&= 1478.8828125 &&\qquad\fbox{合計すると、10進法で「$1478.8828125$」になることが分かる}
\end{align*}
上記の右側の式は10進法であることに注意してください。
10進法の「$16$(ジュウロク)」は16進法では「$10$(イチ・ゼロ)」になります。
10進法の「$12$(ジュウニ)」は16進法では「$\rm c$(スィ―)」になります。
10進法の「$14$(ジュウヨン)」は16進法では「$\rm e$(イー)」になります。
次枠の上下の対応で、同じ数値(左辺)や同じ展開式(右辺)を表現していることになります。
\begin{align*}
\mbox{(16進法)}&&\rm 5c6.e2 &= \rm 5\cdot 10^2 + c\cdot 10^1 + 6\cdot 10^0 + e\cdot 10^{-1} + 2\cdot 10^{-2} \\
&&&\updownarrow \\
\mbox{(10進法)}&&1478.8828125 &= 5\cdot 16^2 + 12\cdot 16^1 + 6\cdot 16^0 + 14\cdot 16^{-1} + 2\cdot 16^{-2} \\
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[16]進法の自然数に設定し、分子に[5c6e2]を、分母に[100]を入力して、上の分数を[10]進法の小数に[変換]ボタンを押してみましょう。
10進数自然数から16進数自然数への変換
16進法の自然数の各桁の値は、16で割った余りを順々に見ていけば分かります。
これを利用して、10進法の自然数を16進法の自然数に変換することができます。
例えば10進数の「$1478$」は下枠のように16進数に変換できます。
つまり「10進数の$1478$」と「16進数の$\rm 5c6$」は同じ数値を表しているということになります。
\begin{align*}
\require{enclose}
\begin{array}{rllll}
16 )\!\enclose{bottom}{1478} & & & &\qquad\fbox{「$1478$」を「$16$」で割る} \\
16 )\!\enclose{bottom}{\phantom{00}92} & \cdots 6 & \quad \rightarrow 16^0\mbox{の桁の値は}\;\,6 & \mbox{16進数で}6 &\qquad\fbox{商は「$92$」余りは「$6$」、この余りから「$16^0$の桁の値は$6$、16進数では$6$」だと分かる} \\
16 )\!\enclose{bottom}{\phantom{000}5} & \cdots 12 & \quad \rightarrow 16^1\mbox{の桁の値は}12 & \mbox{16進数で}\rm c &\qquad\fbox{ひとつ前の商の「$92$」を「$16$」で割ると、商は「$5$」余りは「$12$」、この余りから「$16^1$の桁の値は$12$、16進数では$\rm c$」だと分かる} \\
\phantom{16 )}\!\enclose{}{\phantom{000}0} & \cdots 5 & \quad \rightarrow 16^2\mbox{の桁の値は}\;\,5 & \mbox{16進数で}5 &\qquad\fbox{ひとつ前の商の「$5$」を「$16$」で割ると、商は「$0$」余りは「$5$」、この余りから「$16^2$の桁の値は$5$、16進数では$5$」だと分かる} \\
& & & &\qquad\fbox{商が「$0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;\rm 1478 \rightarrow 5c6\;\mbox{(16進法)} \qquad\fbox{余りの部分を下から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
1478 &= 92\cdot 16 + 6 &&\qquad\fbox{「$1478$」を「$16$」で割ると、商は「$92$」余りは「$6$」から得られる式} \\
92 &= 5\cdot 16 + 12 &&\qquad\fbox{「$92$」を「$16$」で割ると、商は「$5$」余りは「$12$」から得られる式}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を16の累乗で展開した式が得られるわけです。
\begin{align*}
1478 &= 92\cdot 16^1 + 6 \\
&= \left(5\cdot 16 + 12 \right)\cdot 16^1 + 6 \qquad \fbox{$92 = 5\cdot 16 + 12$ で置き換えた} \\
&= 5\cdot 16^2 + 12\cdot 16^1 + 6 \\
&= 5\cdot 16^2 + 12\cdot 16^1 + 6\cdot 16^0
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[1478]を、分母に[1]を入力して、[16]進法の分数に[変換]ボタンを押してみましょう。
10進数純小数から16進数純小数への変換
16進法の純小数の各桁の値は、16を掛けた時の整数部を順々に見ていけば分かります。
これを利用して10進法の純小数を16進法の純小数に変換することができます。
例えば10進数の「$0.8828125$」は下枠のように16進数に変換できます。
つまり「10進数の$0.8828125$」と「16進数の$\rm 0.e2$」は同じ数値を表しているということになります。
\begin{align*}
\begin{array}{rlllll}
0.8828125\times 16 &= 14.125 &= 14 + 0.125 &\rightarrow 16^{-1}\mbox{の桁の値は}14 &\mbox{16進数で}\rm e &\qquad\fbox{「$0.8828125$」に「$16$」を掛けると、整数部は「$14$」小数部は「$0.125$」、この整数部から「$16^{-1}$の桁の値は$14$、16進数では$\rm e$」だと分かる} \\
0.125\times 16 &= 2.0 &= 2 + 0.0 &\rightarrow 16^{-2}\mbox{の桁の値は}\;\,2 &\mbox{16進数で}2 &\qquad\fbox{ひとつ前の小数部「$0.125$」に「$16$」を掛けると、整数部は「$2$」小数部は「$0.0$」、この整数部から「$16^{-2}$の桁の値は$2$、16進数では$2$」だと分かる} \\
& & & & &\qquad\fbox{小数部が「$0.0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;\rm 0.8828125 \rightarrow 0.e2\;\mbox{(16進法)} \qquad\fbox{小数点以降に整数部を上から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rllll}
0.8828125 &= 0.8828125\cdot 16\cdot 16^{-1} &= \left(14 + 0.125\right)\cdot 16^{-1} &= 14\cdot 16^{-1} + 0.125\cdot 16^{-1} &\qquad\fbox{「$0.8828125$」に「$16$」を掛けると、整数部は「$14$」小数部は「$0.125$」から得られる式} \\
0.125 &= 0.125\cdot 16\cdot 16^{-1} &= 2\cdot 16^{-1} & &\qquad\fbox{「$0.125$」に「$16$」を掛けると、整数部は「$2$」小数部は「$0.0$」から得られる式}
\end{array}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を16の累乗で展開した式が得られるわけです。
\begin{align*}
0.8828125 &= 14\cdot 16^{-1} + 0.125\cdot 16^{-1} \\
&= 14\cdot 16^{-1} + 2\cdot 16^{-1}\cdot 16^{-1} \qquad \fbox{$0.125 = 2\cdot 16^{-1}$ で置き換えた} \\
&= 14\cdot 16^{-1} + 2\cdot 16^{-2}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[8828125]を、分母に[10000000]を入力して、上の分数を[16]進法の小数に[変換]ボタンを押してみましょう。
10進数純小数から16進数小数(循環小数)への変換
有限小数の10進数が循環小数の16進数になる場合があります。
例えば10進数の「$0.11$」は下枠のように16進数に変換できます。
つまり「10進数の$0.11$」と「16進数の循環小数$\rm 0.1\dot{c}28f\dot{5}$」は同じ数値を表しているということになります。ドットがついた数値の間の $\rm c28f5$ のパターンを無限に繰り返す循環小数です。
\begin{align*}
\begin{array}{rlllll}
0.11\times 16 &= 1.76 &= 1 + \color{red}{0.76} &\rightarrow 16^{-1}\mbox{の桁の値は}\;\,1 & \mbox{16進数で}1 &\qquad\fbox{「$0.11$」に「$16$」を掛けると、整数部は「$1$」小数部は「$0.76$」、この整数部から「$16^{-1}$の桁の値は$1$、16進数では$1$」だと分かる} \\
\color{red}{0.76}\times 16 &= 12.16 &= \color{blue}{12} + 0.16 &\rightarrow 16^{-2}\mbox{の桁の値は}\color{blue}{12} & \mbox{16進数で}\rm \color{blue}{c} &\qquad\fbox{ひとつ前の小数部「$0.76$」に「$16$」を掛けると、整数部は「$12$」小数部は「$0.16$」、この整数部から「$16^{-2}$の桁の値は$12$、16進数では$\rm c$」だと分かる} \\
0.16\times 16 &= 2.56 &= \color{blue}{2} + 0.56 &\rightarrow 16^{-3}\mbox{の桁の値は}\;\,\color{blue}{2} & \mbox{16進数で}\color{blue}{2} &\qquad\fbox{ひとつ前の小数部「$0.16$」に「$16$」を掛けると、整数部は「$2$」小数部は「$0.56$」、この整数部から「$16^{-3}$の桁の値は$2$、16進数では$2$」だと分かる} \\
0.56\times 16 &= 8.96 &= \color{blue}{8} + 0.96 &\rightarrow 16^{-4}\mbox{の桁の値は}\;\,\color{blue}{8} & \mbox{16進数で}\color{blue}{8} &\qquad\fbox{ひとつ前の小数部「$0.56$」に「$16$」を掛けると、整数部は「$8$」小数部は「$0.96$」、この整数部から「$16^{-4}$の桁の値は$8$、16進数では$8$」だと分かる}\\
0.96\times 16 &= 15.36 &= \color{blue}{15} + 0.36 &\rightarrow 16^{-5}\mbox{の桁の値は}\color{blue}{15} & \mbox{16進数で}\rm \color{blue}{f} &\qquad\fbox{ひとつ前の小数部「$0.96$」に「$16$」を掛けると、整数部は「$15$」小数部は「$0.36$」、この整数部から「$16^{-5}$の桁の値は$15$、16進数では$\rm f$」だと分かる} \\
0.36\times 16 &= 5.76 &= \color{blue}{5} + \color{red}{0.76} &\rightarrow 16^{-6}\mbox{の桁の値は}\;\,\color{blue}{5} & \mbox{16進数で}\color{blue}{5} &\qquad\fbox{ひとつ前の小数部「$0.36$」に「$16$」を掛けると、整数部は「$5$」小数部は「$0.76$」、この整数部から「$16^{-5}$の桁の値は$5$、16進数では$5$」だと分かる} \\
& & & & &\qquad\fbox{小数部「$\color{red}{0.76}$」はすでに出てきている小数部なので、次の段階に進んでも同じパターンを繰り返すだけ} \\
& & & & &\qquad\fbox{これ以降の整数部の値は「$\color{blue}{\rm c28f5}$」のパターンを無限に繰り返す}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法の有限小数)}\;\rm 0.11 \rightarrow 0.1\,\color{blue}{c28f5}\,\color{blue}{c28f5}\,\color{blue}{c28f5}\,\color{blue}{c28f5}\color{blue}{\cdots}\;\mbox{(16進法の循環小数)}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rlll}
0.11 &= 0.11\cdot 16\cdot 16^{-1} &= \left(1 + \color{red}{0.76}\right)\cdot 16^{-1} &= 1\cdot 16^{-1} + \color{red}{0.76}\cdot 16^{-1} &\qquad\fbox{「$0.11$」に「$16$」を掛けると、整数部は「$1$」小数部は「$0.76$」から得られる式} \\
\color{red}{0.76} &= 0.76\cdot 16\cdot 16^{-1} &= \left(\color{blue}{12} + 0.16\right)\cdot 16^{-1} &= \color{blue}{12}\cdot 16^{-1} + 0.16\cdot 16^{-1} &\qquad\fbox{「$0.76$」に「$16$」を掛けると、整数部は「$12$」小数部は「$0.16$」から得られる式} \\
0.16 &= 0.16\cdot 16\cdot 16^{-1} &= \left(\color{blue}{2} + 0.56\right)\cdot 16^{-1} &= \color{blue}{2}\cdot 16^{-1} + 0.56\cdot 16^{-1} &\qquad\fbox{「$0.16$」に「$16$」を掛けると、整数部は「$2$」小数部は「$0.56$」から得られる式} \\
0.56 &= 0.56\cdot 16\cdot 16^{-1} &= \left(\color{blue}{8} + 0.96\right)\cdot 16^{-1} &= \color{blue}{8}\cdot 16^{-1} + 0.96\cdot 16^{-1} &\qquad\fbox{「$0.56$」に「$16$」を掛けると、整数部は「$8$」小数部は「$0.96$」から得られる式} \\
0.96 &= 0.96\cdot 16\cdot 16^{-1} &= \left(\color{blue}{15} + 0.36\right)\cdot 16^{-1} &= \color{blue}{15}\cdot 16^{-1} + 0.36\cdot 16^{-1} &\qquad\fbox{「$0.96$」に「$16$」を掛けると、整数部は「$15$」小数部は「$0.36$」から得られる式} \\
0.36 &= 0.36\cdot 16\cdot 16^{-1} &= \left(\color{blue}{5} + \color{red}{0.76}\right)\cdot 16^{-1} &= \color{blue}{5}\cdot 16^{-1} + \color{red}{0.76}\cdot 16^{-1} &\qquad\fbox{「$0.36$」に「$16$」を掛けると、整数部は「$5$」小数部は「$0.76$」から得られる式}
\end{array}
\end{align*}
これらの式を組み合わせていきます。
まずは $\color{red}{0.76}$ に注目します。
\begin{align*}
\color{red}{0.76} &= \color{blue}{12}\cdot 16^{-1} + 0.16\cdot 16^{-1} \\
&= \color{blue}{12}\cdot 16^{-1} + \left(\color{blue}{2}\cdot 16^{-1} + 0.56\cdot 16^{-1}\right)\cdot 16^{-1} \qquad \fbox{$0.16 = \color{blue}{2}\cdot 16^{-1} + 0.56\cdot 16^{-1}$ で置き換えた} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + 0.56\cdot 16^{-2} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \left(\color{blue}{8}\cdot 16^{-1} + 0.96\cdot 16^{-1}\right)\cdot 16^{-2} \qquad \fbox{$0.56 = \color{blue}{8}\cdot 16^{-1} + 0.96\cdot 16^{-1}$ で置き換えた} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \color{blue}{8}\cdot 16^{-3} + 0.96\cdot 16^{-3} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \color{blue}{8}\cdot 16^{-3} + \left(\color{blue}{15}\cdot 16^{-1} + 0.36\cdot 16^{-1}\right)\cdot 16^{-3} \qquad \fbox{$0.96 = \color{blue}{15}\cdot 16^{-1} + 0.36\cdot 16^{-1}$ で置き換えた} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \color{blue}{8}\cdot 16^{-3} + \color{blue}{15}\cdot 16^{-4} + 0.36\cdot 16^{-4} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \color{blue}{8}\cdot 16^{-3} + \color{blue}{15}\cdot 16^{-4} + \left(\color{blue}{5}\cdot 16^{-1} + \color{red}{0.76}\cdot 16^{-1}\right)\cdot 16^{-4} \qquad \fbox{$0.36 = \color{blue}{5}\cdot 16^{-1} + \color{red}{0.76}\cdot 16^{-1}$ で置き換えた} \\
&= \color{blue}{12}\cdot 16^{-1} + \color{blue}{2}\cdot 16^{-2} + \color{blue}{8}\cdot 16^{-3} + \color{blue}{15}\cdot 16^{-4} + \color{blue}{5}\cdot 16^{-5} + \color{red}{0.76}\cdot 16^{-5}
\end{align*}
結果、次のような $\color{red}{0.76}$ を表す式の中に $\color{red}{0.76}$ が入っている式が得られます。
このような自分の中に自分が入っている式が、無限に同じパターンを繰り返す循環節を生み出す元になります。
\begin{align*}
\color{red}{0.76} = \color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}
\end{align*}
10進数の $0.11$ を16の累乗で展開した式は次のようになります。
\begin{align*}
0.11 &= 1\cdot 16^{-1} + \color{red}{0.76}\cdot 16^{-1} \\
&= 1\cdot 16^{-1} + \left(\color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}\right)\cdot 16^{-1} \qquad \fbox{$\color{red}{0.76} = \color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}$ で置き換えた} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{red}{0.76}\cdot 16^{-6} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \left(\color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}\right)\cdot 16^{-6} \qquad \fbox{$\color{red}{0.76} = \color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}$ で置き換えた} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{blue}{12\cdot 16^{-7} + 2\cdot 16^{-8} + 8\cdot 16^{-9} + 15\cdot 16^{-10} + 5\cdot 16^{-11}} + \color{red}{0.76}\cdot 16^{-11} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{blue}{12\cdot 16^{-7} + 2\cdot 16^{-8} + 8\cdot 16^{-9} + 15\cdot 16^{-10} + 5\cdot 16^{-11}} + \left(\color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}\right)\cdot 16^{-11} \qquad \fbox{$\color{red}{0.76} = \color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}$ で置き換えた} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{blue}{12\cdot 16^{-7} + 2\cdot 16^{-8} + 8\cdot 16^{-9} + 15\cdot 16^{-10} + 5\cdot 16^{-11}} + \color{blue}{12\cdot 16^{-12} + 2\cdot 16^{-13} + 8\cdot 16^{-14} + 15\cdot 16^{-15} + 5\cdot 16^{-16}} + \color{red}{0.76}\cdot 16^{-16} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{blue}{12\cdot 16^{-7} + 2\cdot 16^{-8} + 8\cdot 16^{-9} + 15\cdot 16^{-10} + 5\cdot 16^{-11}} + \color{blue}{12\cdot 16^{-12} + 2\cdot 16^{-13} + 8\cdot 16^{-14} + 15\cdot 16^{-15} + 5\cdot 16^{-16}} + \left(\color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}\right)\cdot 16^{-16} \qquad \fbox{$\color{red}{0.76} = \color{blue}{12\cdot 16^{-1} + 2\cdot 16^{-2} + 8\cdot 16^{-3} + 15\cdot 16^{-4} + 5\cdot 16^{-5}} + \color{red}{0.76}\cdot 16^{-5}$ で置き換えた} \\
&= 1\cdot 16^{-1} + \color{blue}{12\cdot 16^{-2} + 2\cdot 16^{-3} + 8\cdot 16^{-4} + 15\cdot 16^{-5} + 5\cdot 16^{-6}} + \color{blue}{12\cdot 16^{-7} + 2\cdot 16^{-8} + 8\cdot 16^{-9} + 15\cdot 16^{-10} + 5\cdot 16^{-11}} + \color{blue}{12\cdot 16^{-12} + 2\cdot 16^{-13} + 8\cdot 16^{-14} + 15\cdot 16^{-15} + 5\cdot 16^{-16}} + \color{blue}{12\cdot 16^{-17} + 2\cdot 16^{-18} + 8\cdot 16^{-19} + 15\cdot 16^{-20} + 5\cdot 16^{-21}} + \color{red}{0.76}\cdot 16^{-21} \\
&\vdots \qquad \fbox{同じ処理の繰り返しが無限に続く}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[11]を、分母に[100]を入力して、上の分数を[16]進法の小数に[変換]ボタンを押してみましょう。
2進法と16進法は非常に相性の良い基数になってます。
なぜならば $2^4 = 16$ という関係があるので、2進法の4桁と16進法の1桁がきっちりと対応するからです。
以下に10進数で0から15までの、2進数4桁と16進数1桁の対応表を示します。
この表では後の変換に便利なように、2進数の上位の空の桁を0で埋めて全て4桁で表しています。
10進数 | 2進数 | 16進数 |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | a |
11 | 1011 | b |
12 | 1100 | c |
13 | 1101 | d |
14 | 1110 | e |
15 | 1111 | f |
例として「$\rm 5c6.e2$」という16進数を考えてみましょう。
小数点を基準に4桁ずつ対応表を見て置き換えるだけです。
計算は全く必要ありません。
\begin{align*}
\mbox{(16進法)}\;\rm \color{red}{\vert}5\color{red}{\vert}c\color{red}{\vert}6\color{red}{\vert}.\color{red}{\vert}e\color{red}{\vert}2\color{red}{\vert} \leftrightarrow \color{red}{\vert}0101\color{red}{\vert}1100\color{red}{\vert}0110\color{red}{\vert}.\color{red}{\vert}1110\color{red}{\vert}0010\color{red}{\vert}\;\mbox{(2進法)}
\end{align*}
\begin{align*}
\mbox{(16進法)}\;\rm 5c6.e2 \leftrightarrow 10111000110.1110001\;\mbox{(2進法)}
\end{align*}
ちなみにこの操作は10進法で見ると、以下の計算に対応します。
\begin{align*}
& 5\cdot 16^2 + 12\cdot 16^1 + 6\cdot 16^0 + 14\cdot 16^{-1} + 2\cdot 16^{-2} \\
&= \left(0\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 1\cdot 2^0\right)\cdot \left(2^4\right)^2
+ \left(1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^4\right)^1
+ \left(0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^4\right)^0
+ \left(1\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^4\right)^{-1}
+ \left(0\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^4\right)^{-2} \\
&= \left(0\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 1\cdot 2^0\right)\cdot 2^8
+ \left(1\cdot 2^3 + 1\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^4
+ \left(0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^0
+ \left(1\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^{-4}
+ \left(0\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^{-8} \\
&= 0\cdot 2^{11} + 1\cdot 2^{10} + 0\cdot 2^9+ 1\cdot 2^8
+ 1\cdot 2^7 + 1\cdot 2^6 + 0\cdot 2^5 + 0\cdot 2^4
+ 0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0
+ 1\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4}
+ 0\cdot 2^{-5} + 0\cdot 2^{-6} + 1\cdot 2^{-7} + 0\cdot 2^{-8} \\
&= 1\cdot 2^{10} + 0\cdot 2^9+ 1\cdot 2^8 + 1\cdot 2^7 + 1\cdot 2^6 + 0\cdot 2^5 + 0\cdot 2^4 + 0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0 + 1\cdot 2^{-1} + 1\cdot 2^{-2} + 1\cdot 2^{-3} + 0\cdot 2^{-4} + 0\cdot 2^{-5} + 0\cdot 2^{-6} + 1\cdot 2^{-7}
\end{align*}
$16=2^4$ が上手く働いてることが分かります。
8進法の各桁は8の累乗の束を表しています。
例えば「$2706.704$」という8進数は下枠のように10進数に変換することができます。
つまり「8進数の$2706.704$」と「10進数の$1478.8828125$」は同じ数値を表しているということになります。
\begin{align*}
\mbox{(8進法)}\;2706.704 \rightarrow & 2\cdot 8^3 + 7\cdot 8^2 + 0\cdot 8^1 + 6\cdot 8^0 + 7\cdot 8^{-1} + 0\cdot 8^{-2} + 4\cdot 8^{-3}\;\mbox{(10進法)} &&\qquad\fbox{8進法の「$2706.704$」は、10進法で考えると「$2$個の$8^2$の束」「$7$個の$8^2$の束」「$0$個の$8^1$の束」「$6$個の$8^0$の束」「$7$個の$8^{-1}$の束」「$0$個の$8^{-2}$の束」「$4$個の$8^{-3}$の束」の合計}\\
&= 2\cdot 512 + 7\cdot 64 + 0\cdot 8 + 6\cdot 1 + 7\cdot \frac{1}{8} + 0\cdot \frac{1}{64} + 4\cdot \frac{1}{512} &&\qquad\fbox{累乗を計算すると「$8^3=512$」、「$8^2=64$」、「$8^1=8$」、「$8^0=1$」、「$8^{-1}=\frac{1}{8}$」、「$8^{-2}=\frac{1}{64}$」「$8^{-3}=\frac{1}{512}$」} \\
&= 2\cdot 512 + 7\cdot 64 + 0\cdot 8 + 6\cdot 1 + 7\cdot 0.125 + 0\cdot 0.015625 + 4\cdot 0.001953125 &&\qquad\fbox{分数を小数にすると「$\frac{1}{8}=0.125$」、「$\frac{1}{64}=0.015625$」「$\frac{1}{512}=0.001953125$」} \\
&= 1024 + 448 + 0 + 6 + 0.875 + 0.0 + 0.0078125 &&\qquad\fbox{各項の掛け算を実行} \\
&= 1478.8828125 &&\qquad\fbox{合計すると、10進法で「$1478.8828125$」になることが分かる}
\end{align*}
上記の右側の式は10進法であることに注意してください。
10進法の「$8$(ハチ)」は8進法では「$10$(イチ・ゼロ)」になります。
次枠の上下の対応で、同じ数値(左辺)や同じ展開式(右辺)を表現していることになります。
\begin{align*}
\mbox{(8進法)}&&2706.704 &= 2\cdot 10^3 + 7\cdot 10^2 + 0\cdot 10^1 + 6\cdot 10^0 + 7\cdot 10^{-1} + 0\cdot 10^{-2} + 4\cdot 10^{-2} \\
&&&\updownarrow \\
\mbox{(10進法)}&&1478.8828125 &= 2\cdot 8^3 + 7\cdot 8^2 + 0\cdot 8^1 + 6\cdot 8^0 + 7\cdot 8^{-1} + 0\cdot 8^{-2} + 4\cdot 8^{-3}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[8]進法の自然数に設定し、分子に[2706704]を、分母に[1000]を入力して、上の分数を[10]進法の小数に[変換]ボタンを押してみましょう。
10進数自然数から8進数自然数への変換
8進法の自然数の各桁の値は、8で割った余りを順々に見ていけば分かります。
これを利用して、10進法の自然数を8進法の自然数に変換することができます。
例えば10進数の「$1478$」は下枠のように8進数に変換できます。
つまり「10進数の$1478$」と「8進数の$2706$」は同じ数値を表しているということになります。
\begin{align*}
\require{enclose}
\begin{array}{rlll}
8 )\!\enclose{bottom}{1478} & & &\qquad\fbox{「$1478$」を「$8$」で割る} \\
8 )\!\enclose{bottom}{\phantom{0}184} & \cdots 6 & \quad \rightarrow 8^0\mbox{の桁の値は}6 &\qquad\fbox{商は「$184$」余りは「$6$」、この余りから「$8^0$の桁の値は$6$」だと分かる} \\
8 )\!\enclose{bottom}{\phantom{00}23} & \cdots 0 & \quad \rightarrow 8^1\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の商の「$184$」を「$8$」で割ると、商は「$23$」余りは「$0$」、この余りから「$8^1$の桁の値は$0$」だと分かる} \\
8 )\!\enclose{bottom}{\phantom{000}2} & \cdots 7 & \quad \rightarrow 8^2\mbox{の桁の値は}7 &\qquad\fbox{ひとつ前の商の「$23$」を「$8$」で割ると、商は「$2$」余りは「$7$」、この余りから「$8^2$の桁の値は$7$」だと分かる} \\
\phantom{8 )}\!\enclose{}{\phantom{000}0} & \cdots 2 & \quad \rightarrow 8^3\mbox{の桁の値は}2 &\qquad\fbox{ひとつ前の商の「$2$」を「$8$」で割ると、商は「$0$」余りは「$2$」、この余りから「$8^3$の桁の値は$2$」だと分かる} \\
& & &\qquad\fbox{商が「$0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;\rm 1478 \rightarrow 2706\;\mbox{(8進法)} \qquad\fbox{余りの部分を下から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rl}
1478 &= 184\cdot 8 + 6 &&\qquad\fbox{「$1478$」を「$8$」で割ると、商は「$184$」余りは「$6$」から得られる式} \\
184 &= 23\cdot 8 + 0 &&\qquad\fbox{「$184$」を「$8$」で割ると、商は「$23$」余りは「$0$」から得られる式} \\
23 &= 2\cdot 8 + 7 &&\qquad\fbox{「$23$」を「$8$」で割ると、商は「$2$」余りは「$7$」から得られる式}
\end{array}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を8の累乗で展開した式が得られるわけです。
\begin{align*}
1478 &= 184\cdot 8 + 6 \\
&= \left(23\cdot 8 + 0\right)\cdot 8 + 6 \qquad \fbox{$184 = 23\cdot 8 + 6$ で置き換えた} \\
&= 23\cdot 8^2 + 0\cdot 8 + 6 \\
&= \left(2\cdot 8 + 7\right)\cdot 8^2 + 0\cdot 8 + 6 \qquad \fbox{$23 = 2\cdot 8 + 7$ で置き換えた} \\
&= 2\cdot 8^3 + 7\cdot 8^2 + 0\cdot 8 + 6 \\
&= 2\cdot 8^3 + 7\cdot 8^2 + 0\cdot 8^1 + 6\cdot 8^0
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[8]進法の自然数に設定し、分子に[1478]を、分母に[1]を入力して、[8]進法の分数に[変換]ボタンを押してみましょう。
10進数純小数から8進数純小数への変換
8進法の純小数の各桁の値は、8を掛けた時の整数部を順々に見ていけば分かります。
これを利用して10進法の純小数を8進法の純小数に変換することができます。
例えば10進数の「$0.8828125$」は下枠のように8進数に変換できます。
つまり「10進数の$0.8828125$」と「8進数の$0.704$」は同じ数値を表しているということになります。
\begin{align*}
\begin{array}{rllll}
0.8828125\times 8 &= 7.0625 &= 7 + 0.0625 &\rightarrow 8^{-1}\mbox{の桁の値は}7 &\qquad\fbox{「$0.8828125$」に「$8$」を掛けると、整数部は「$7$」小数部は「$0.0625$」、この整数部から「$8^{-1}$の桁の値は$7$」だと分かる} \\
0.0625\times 8 &= 0.5 &= 0 + 0.5 &\rightarrow 8^{-2}\mbox{の桁の値は}0 &\qquad\fbox{ひとつ前の小数部「$0.0625$」に「$8$」を掛けると、整数部は「$0$」小数部は「$0.5$」、この整数部から「$8^{-2}$の桁の値は$0$」だと分かる} \\
0.5\times 8 &= 4.0 &= 4 + 0.0 &\rightarrow 8^{-3}\mbox{の桁の値は}4 &\qquad\fbox{ひとつ前の小数部「$0.5$」に「$8$」を掛けると、整数部は「$4$」小数部は「$0.0$」、この整数部から「$8^{-3}$の桁の値は$4$」だと分かる} \\
& & & &\qquad\fbox{小数部が「$0.0$」になったのでこれ以上続けても意味がない}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法)}\;\rm 0.8828125 \rightarrow 0.704\;\mbox{(8進法)} \qquad\fbox{小数点以降に整数部を上から順に並べた}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rllll}
0.8828125 &= 0.8828125\cdot 8\cdot 8^{-1} &= \left(7 + 0.0625\right)\cdot 8^{-1} &= 7\cdot 8^{-1} + 0.0625\cdot 8^{-1} &\qquad\fbox{「$0.8828125$」に「$8$」を掛けると、整数部は「$7$」小数部は「$0.0625$」から得られる式} \\
0.0625 &= 0.0625\cdot 8\cdot 8^{-1} &= \left(0 + 0.5\right)\cdot 8^{-1} &= 0\cdot 8^{-1} + 0.5\cdot 8^{-1} &\qquad\fbox{「$0.0625$」に「$8$」を掛けると、整数部は「$0$」小数部は「$0.5$」から得られる式} \\
0.5 &= 0.5\cdot 8\cdot 8^{-1} &= 4\cdot 8^{-1} & &\qquad\fbox{「$0.5$」に「$8$」を掛けると、整数部は「$4$」小数部は「$0.0$」から得られる式}
\end{array}
\end{align*}
これらの式をどんどん組み合わせていくと、以下のように10進数を8の累乗で展開した式が得られるわけです。
\begin{align*}
0.8828125 &= 7\cdot 8^{-1} + 0.0625\cdot 8^{-1} \\
&= 7\cdot 8^{-1} + \left(0\cdot 8^{-1} + 0.5\cdot 8^{-1}\right)\cdot 8^{-1} \qquad \fbox{$0.0625 = 0\cdot 8^{-1} + 0.5\cdot 8^{-1}$ で置き換えた} \\
&= 7\cdot 8^{-1} + 0\cdot 8^{-2} + 0.5\cdot 8^{-2} \\
&= 7\cdot 8^{-1} + 0\cdot 8^{-2} + \left(4\cdot 8^{-1}\right)\cdot 8^{-2} \qquad \fbox{$0.5 = 4\cdot 8^{-1}$ で置き換えた} \\
&= 7\cdot 8^{-1} + 0\cdot 8^{-2} + 4\cdot 8^{-3}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[8828125]を、分母に[10000000]を入力して、上の分数を[8]進法の小数に[変換]ボタンを押してみましょう。
10進数純小数から8進数小数(循環小数)への変換
有限小数の10進数が循環小数の8進数になる場合があります。
例えば10進数の「$0.1$」は下枠のように8進数に変換できます。
つまり「10進数の$0.1$」と「8進数の循環小数$0.0\dot{6}31\dot{4}$」は同じ数値を表しているということになります。ドットがついた数値の間の $6314$ のパターンを無限に繰り返す循環小数です。
\begin{align*}
\begin{array}{rllll}
0.1\times 8 &= 0.8 &= 0 + \color{red}{0.8} &\rightarrow 8^{-1}\mbox{の桁の値は}0 &\qquad\fbox{「$0.1$」に「$8$」を掛けると、整数部は「$0$」小数部は「$0.8$」、この整数部から「$8^{-1}$の桁の値は$0$」だと分かる} \\
\color{red}{0.8}\times 8 &= 6.4 &= \color{blue}{6} + 0.4 &\rightarrow 8^{-2}\mbox{の桁の値は}\color{blue}{6} &\qquad\fbox{ひとつ前の小数部「$0.8$」に「$8$」を掛けると、整数部は「$6$」小数部は「$0.4$」、この整数部から「$8^{-2}$の桁の値は$6$」だと分かる} \\
0.4\times 8 &= 3.2 &= \color{blue}{3} + 0.2 &\rightarrow 8^{-3}\mbox{の桁の値は}\color{blue}{3} &\qquad\fbox{ひとつ前の小数部「$0.4$」に「$8$」を掛けると、整数部は「$3$」小数部は「$0.2$」、この整数部から「$8^{-3}$の桁の値は$3$」だと分かる} \\
0.2\times 8 &= 1.6 &= \color{blue}{1} + 0.6 &\rightarrow 8^{-4}\mbox{の桁の値は}\color{blue}{1} &\qquad\fbox{ひとつ前の小数部「$0.2$」に「$8$」を掛けると、整数部は「$1$」小数部は「$0.6$」、この整数部から「$8^{-4}$の桁の値は$1$」だと分かる} \\
0.6\times 8 &= 4.8 &= \color{blue}{4} + \color{red}{0.8} &\rightarrow 8^{-5}\mbox{の桁の値は}\color{blue}{4} &\qquad\fbox{ひとつ前の小数部「$0.6$」に「$8$」を掛けると、整数部は「$4$」小数部は「$0.8$」、この整数部から「$8^{-5}$の桁の値は$4$」だと分かる} \\
& & & &\qquad\fbox{小数部「$\color{red}{0.8}$」はすでに出てきている小数部なので、次の段階に進んでも同じパターンを繰り返すだけ} \\
& & & &\qquad\fbox{これ以降の桁の値は $\color{blue}{6314}$ のパターンを無限に繰り返す}
\end{array}
\end{align*}
\begin{align*}
\mbox{(10進法の有限小数)}\;\rm 0.1 \rightarrow 0.0\,\color{blue}{6314}\,\color{blue}{6314}\,\color{blue}{6314}\,\color{blue}{6314}\color{blue}{\cdots}\;\mbox{(8進法の循環小数)}
\end{align*}
ちなみに上記の計算の各段階で、以下の式が得られます。
\begin{align*}
\begin{array}{rllll}
0.1 &= 0.1\cdot 8\cdot 8^{-1} &= \left(0 + \color{red}{0.8}\right)\cdot 8^{-1} &= 0\cdot 8^{-1} + \color{red}{0.8}\cdot 8^{-1} &\qquad\fbox{「$0.1$」に「$8$」を掛けると、整数部は「$0$」小数部は「$0.8$」から得られる式} \\
\color{red}{0.8} &= 0.8\cdot 8\cdot 8^{-1} &= \left(\color{blue}{6} + 0.4\right)\cdot 8^{-1} &= \color{blue}{6}\cdot 8^{-1} + 0.4\cdot 8^{-1} &\qquad\fbox{「$0.8$」に「$8$」を掛けると、整数部は「$6$」小数部は「$0.4$」から得られる式} \\
0.4 &= 0.4\cdot 8\cdot 8^{-1} &= \left(\color{blue}{3} + 0.2\right)\cdot 8^{-1} &= \color{blue}{3}\cdot 8^{-1} + 0.2\cdot 8^{-1} &\qquad\fbox{「$0.4$」に「$8$」を掛けると、整数部は「$3$」小数部は「$0.2$」から得られる式} \\
0.2 &= 0.2\cdot 8\cdot 8^{-1} &= \left(\color{blue}{1} + 0.6\right)\cdot 8^{-1} &= \color{blue}{1}\cdot 8^{-1} + 0.6\cdot 8^{-1} &\qquad\fbox{「$0.2$」に「$8$」を掛けると、整数部は「$1$」小数部は「$0.6$」から得られる式} \\
0.6 &= 0.6\cdot 8\cdot 8^{-1} &= \left(\color{blue}{4} + \color{red}{0.8}\right)\cdot 8^{-1} &= \color{blue}{4}\cdot 8^{-1} + \color{red}{0.8}\cdot 8^{-1} &\qquad\fbox{「$0.6$」に「$8$」を掛けると、整数部は「$4$」小数部は「$0.8$」から得られる式}
\end{array}
\end{align*}
これらの式を組み合わせていきます。
まずは $\color{red}{0.8}$ に注目します。
\begin{align*}
\color{red}{0.8} &= \color{blue}{6}\cdot 8^{-1} + 0.4\cdot 8^{-1} \\
&= \color{blue}{6}\cdot 8^{-1} + \left(\color{blue}{3}\cdot 8^{-1} + 0.2\cdot 8^{-1}\right)\cdot 8^{-1} \qquad \fbox{$0.4 = \color{blue}{3}\cdot 8^{-1} + 0.2\cdot 8^{-1}$ で置き換えた} \\
&= \color{blue}{6}\cdot 8^{-1} + \color{blue}{3}\cdot 8^{-2} + 0.2\cdot 8^{-2} \\
&= \color{blue}{6}\cdot 8^{-1} + \color{blue}{3}\cdot 8^{-2} + \left(\color{blue}{1}\cdot 8^{-1} + 0.6\cdot 8^{-1}\right)\cdot 8^{-2} \qquad \fbox{$0.2 = \color{blue}{1}\cdot 8^{-1} + 0.6\cdot 8^{-1}$ で置き換えた} \\
&= \color{blue}{6}\cdot 8^{-1} + \color{blue}{3}\cdot 8^{-2} + \color{blue}{1}\cdot 8^{-3} + 0.6\cdot 8^{-3} \\
&= \color{blue}{6}\cdot 8^{-1} + \color{blue}{3}\cdot 8^{-2} + \color{blue}{1}\cdot 8^{-3} + \left(\color{blue}{4}\cdot 8^{-1} + \color{red}{0.8}\cdot 8^{-1}\right)\cdot 8^{-3} \qquad \fbox{$0.6 = \color{blue}{4}\cdot 8^{-1} + \color{red}{0.8}\cdot 8^{-1}$ で置き換えた} \\
&= \color{blue}{6}\cdot 8^{-1} + \color{blue}{3}\cdot 8^{-2} + \color{blue}{1}\cdot 8^{-3} + \color{blue}{4}\cdot 8^{-4} + \color{red}{0.8}\cdot 8^{-4}
\end{align*}
結果、次のような $\color{red}{0.8}$ を表す式の中に $\color{red}{0.8}$ が入っている式が得られます。
このような自分の中に自分が入っている式が、無限に同じパターンを繰り返す循環節を生み出す元になります。
\begin{align*}
\color{red}{0.8} = \color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}
\end{align*}
10進数の $0.1$ を8の累乗で展開した式は次のようになります。
\begin{align*}
0.1 &= 0\cdot 8^{-1} + \color{red}{0.8}\cdot 8^{-1} \\
&= 0\cdot 8^{-1} + \left(\color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}\right)\cdot 8^{-1} \qquad \fbox{$\color{red}{0.8} = \color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}$ で置き換えた} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{red}{0.8}\cdot 8^{-5} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \left(\color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}\right)\cdot 8^{-5} \qquad \fbox{$\color{red}{0.8} = \color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}$ で置き換えた} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{blue}{6\cdot 8^{-6} + 3\cdot 8^{-7} + 1\cdot 8^{-8} + 4\cdot 8^{-9}} + \color{red}{0.8}\cdot 8^{-9} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{blue}{6\cdot 8^{-6} + 3\cdot 8^{-7} + 1\cdot 8^{-8} + 4\cdot 8^{-9}} + \left(\color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}\right)\cdot 8^{-9} \qquad \fbox{$\color{red}{0.8} = \color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}$ で置き換えた} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{blue}{6\cdot 8^{-6} + 3\cdot 8^{-7} + 1\cdot 8^{-8} + 4\cdot 8^{-9}} + \color{blue}{6\cdot 8^{-10} + 3\cdot 8^{-11} + 1\cdot 8^{-12} + 4\cdot 8^{-13}} + \color{red}{0.8}\cdot 8^{-13} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{blue}{6\cdot 8^{-6} + 3\cdot 8^{-7} + 1\cdot 8^{-8} + 4\cdot 8^{-9}} + \color{blue}{6\cdot 8^{-10} + 3\cdot 8^{-11} + 1\cdot 8^{-12} + 4\cdot 8^{-13}} + \left(\color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}\right)\cdot 8^{-13} \qquad \fbox{$\color{red}{0.8} = \color{blue}{6\cdot 8^{-1} + 3\cdot 8^{-2} + 1\cdot 8^{-3} + 4\cdot 8^{-4}} + \color{red}{0.8}\cdot 8^{-4}$ で置き換えた} \\
&= 0\cdot 8^{-1} + \color{blue}{6\cdot 8^{-2} + 3\cdot 8^{-3} + 1\cdot 8^{-4} + 4\cdot 8^{-5}} + \color{blue}{6\cdot 8^{-6} + 3\cdot 8^{-7} + 1\cdot 8^{-8} + 4\cdot 8^{-9}} + \color{blue}{6\cdot 8^{-10} + 3\cdot 8^{-11} + 1\cdot 8^{-12} + 4\cdot 8^{-13}} + \color{blue}{6\cdot 8^{-14} + 3\cdot 8^{-15} + 1\cdot 8^{-16} + 4\cdot 8^{-17}} + \color{red}{0.8}\cdot 8^{-17} \\
&\vdots \qquad \fbox{同じ処理の繰り返しが無限に続く}
\end{align*}
ちなみに、ここでの計算例は(こちら)のプログラムで確かめることができます。
分母分子を[10]進法の自然数に設定し、分子に[1]を、分母に[10]を入力して、上の分数を[8]進法の小数に[変換]ボタンを押してみましょう。
2進法と8進法は非常に相性の良い基数になってます。
なぜならば $2^3 = 8$ という関係があるので、2進法の3桁と8進法の1桁がきっちりと対応するからです。
以下に10進数で0から7までの、2進数3桁と8進数1桁の対応表を示します。
この表では後の変換に便利なように、2進数の上位の空の桁を0で埋めて全て3桁で表しています。
10進数 | 2進数 | 8進数 |
0 | 000 | 0 |
1 | 001 | 1 |
2 | 010 | 2 |
3 | 011 | 3 |
4 | 100 | 4 |
5 | 101 | 5 |
6 | 110 | 6 |
7 | 111 | 7 |
例として「$2706.704$」という8進数を考えてみましょう。
小数点を基準に3桁ずつ対応表を見て置き換えるだけです。
計算は全く必要ありません。
\begin{align*}
\mbox{(8進法)}\;\color{red}{\vert}2\color{red}{\vert}7\color{red}{\vert}0\color{red}{\vert}6\color{red}{\vert}.\color{red}{\vert}7\color{red}{\vert}0\color{red}{\vert}4\color{red}{\vert} \leftrightarrow \color{red}{\vert}010\color{red}{\vert}111\color{red}{\vert}000\color{red}{\vert}110\color{red}{\vert}.\color{red}{\vert}111\color{red}{\vert}000\color{red}{\vert}100\color{red}{\vert}\;\mbox{(2進法)} \\
\end{align*}
\begin{align*}
\mbox{(8進法)}\;\rm 2706.704 \leftrightarrow 10111000110.1110001\;\mbox{(2進法)}
\end{align*}
ちなみにこの操作は10進法で見ると、以下の計算に対応します。
\begin{align*}
& 2\cdot 8^3 + 7\cdot 8^2 + 0\cdot 8^1 + 6\cdot 8^0 + 7\cdot 8^{-1} + 0\cdot 8^{-2} + 4\cdot 8^{-3} \\
&= \left(0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^3\right)^3
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0\right)\cdot \left(2^3\right)^2
+ \left(0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^3\right)^1
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^3\right)^0
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0\right)\cdot \left(2^3\right)^{-1}
+ \left(0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^3\right)^{-2}
+ \left(1\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot \left(2^3\right)^{-3} \\
&= \left(0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^9
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0\right)\cdot 2^6
+ \left(0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^3
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^0
+ \left(1\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0\right)\cdot 2^{-3}
+ \left(0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^{-6}
+ \left(1\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0\right)\cdot 2^{-9} \\
&= 0\cdot 2^{11} + 1\cdot 2^{10} + 0\cdot 2^9
+ 1\cdot 2^8 + 1\cdot 2^7 + 1\cdot 2^6
+ 0\cdot 2^5 + 0\cdot 2^4 + 0\cdot 2^3
+ 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0
+ 1\cdot 2^{-1} + 1\cdot 2^{-2}1 + 1\cdot 2^{-3}
+ 0\cdot 2^{-4}2 + 0\cdot 2^{-5} + 0\cdot 2^{-6}
+ 1\cdot 2^{-7} + 0\cdot 2^{-8} + 0\cdot 2^{-9} \\
&= 1\cdot 2^{10} + 0\cdot 2^9 + 1\cdot 2^8 + 1\cdot 2^7 + 1\cdot 2^6 + 0\cdot 2^5 + 0\cdot 2^4 + 0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0 + 1\cdot 2^{-1} + 1\cdot 2^{-2}1 + 1\cdot 2^{-3} + 0\cdot 2^{-4}2 + 0\cdot 2^{-5} + 0\cdot 2^{-6} + 1\cdot 2^{-7}
\end{align*}
$8=2^3$ が上手く働いてることが分かります。
2,8,16進法→10進法は位取りの桁のシステムが分かっていれば簡単です。
逆は「割り算・掛け算」が少し大変になってきます。
2進法では計算は簡単ですが、計算回数が多くなって間違えやすくなります。
16進法は「10進法の2桁の掛け算や割り算」が出てきて少し大変になります。
日本人は小学校2年の時に、九九を丸暗記して身に着けているので、8進法の計算では七七が使えます。
以下の順番で変換すれば間違えにくく、時間もかからないと思います。
- 10進法から割り算、掛け算で8進法に変換する
- 次に8進法から10進法に変換して元に戻るかチェック
- 次に8進法から表を使って2進法に変換
- 次に2進法から表を使って16進法に変換する
10進法 ↔ 8進法 ↔ 2進法 ↔ 16進法
2桁の割り算が苦手ではない人は 10進法 ↔ 16進法 の計算を実行すれば、一度に多くの桁に対応する数値が処理できるので速いと思います。
暗記が得意な人は九九の表の代わりに十六十六までの足し算や掛け算の表を暗記するとむちゃくちゃ速く変換できるようになるはずです。
以下、表を掲載します。
暗記する気になれない人は、その都度筆算するか、8進法を経由するのが良いと思われます。
以下は足し算の表です。
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
4 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
5 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
6 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
7 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
8 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
9 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
10 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
11 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
12 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
13 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
14 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
15 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
16 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
以下は掛け算の表です。
× | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
2 | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 |
3 | 0 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 42 | 45 | 48 |
4 | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 |
5 | 0 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 |
6 | 0 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 66 | 72 | 78 | 84 | 90 | 96 |
7 | 0 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 | 77 | 84 | 91 | 98 | 105 | 112 |
8 | 0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 | 128 |
9 | 0 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 | 99 | 108 | 117 | 126 | 135 | 144 |
10 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 |
11 | 0 | 11 | 22 | 33 | 44 | 55 | 66 | 77 | 88 | 99 | 110 | 121 | 132 | 143 | 154 | 165 | 176 |
12 | 0 | 12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 | 108 | 120 | 132 | 144 | 156 | 168 | 180 | 192 |
13 | 0 | 13 | 26 | 39 | 52 | 65 | 78 | 91 | 104 | 117 | 130 | 143 | 156 | 169 | 182 | 195 | 208 |
14 | 0 | 14 | 28 | 42 | 56 | 70 | 84 | 98 | 112 | 126 | 140 | 154 | 168 | 182 | 196 | 210 | 224 |
15 | 0 | 15 | 30 | 45 | 60 | 75 | 90 | 105 | 120 | 135 | 150 | 165 | 180 | 195 | 210 | 225 | 240 |
16 | 0 | 16 | 32 | 48 | 64 | 80 | 96 | 112 | 128 | 144 | 160 | 176 | 192 | 208 | 224 | 240 | 256 |
表を作ってみましたが、足し算は何とかなりそうですが、掛け算の方の暗記はちょっときつそうですね。
ここまで、ある1つの注目した数に関して、基数変換で様々な位取り法で表現する方法を学んできました。
次の応用として、2進法での2つの数の四則演算、8進法での2つの数の四則演算、16進法での2つの数の四則演算があります。
10進法ではどのように身につけていったのか?
小学校6年かけて身につけたことを思い出してください。
1桁の足し算・引き算をやって次に筆算で複数桁の足し算・引き算、桁上がり桁下がりを身につけました。
更に1桁の掛け算である九九を覚えて複数桁の掛け算・割り算へと進んでいきます。
以下に基本になる1桁の足し算・掛け算の計算表を掲載します。
これを元に、足し算・掛け算の結合法則・交換法則・分配法則を用いて筆算を組み立て、実行していくことになります。
2進法の計算表
2進数と2進数の計算では2進法の桁上がりルールに従わなければなりません。
そのため、2進法での1桁の足し算と掛け算の表を作っておくと筆算に便利です。
以下は足し算の計算表です。数値は全て10進法の時と同じで表現が違うだけです。
+ | 0 | 1 | 10 |
0 | 0 | 1 | 10 |
1 | 1 | 10 | 11 |
10 | 10 | 11 | 100 |
以下は掛け算の計算表です。数値は全て10進法の時と同じで表現が違うだけです。
× | 0 | 1 | 10 |
0 | 0 | 0 | 0 |
1 | 0 | 1 | 10 |
10 | 0 | 10 | 100 |
桁上がりにさえ気を付ければ、覚えなければならないことは殆どありません。
表を作らなくても良いくらいです。
2進法では桁数が大きくなりがちなのが難点ですが、簡単なルールを組み合わせて計算できます。
機械的な計算に2進法は最適です。
2進法での計算例が(こちら)のリンク先にありますので、参考にしてください。
8進法の計算表
以下は足し算の表です。数値は全て10進法の時と同じで表現が違うだけです。
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 |
2 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 |
3 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 |
4 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 |
5 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 |
6 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
7 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
10 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 |
以下は掛け算の表です。数値は全て10進法の時と同じで表現が違うだけです。
× | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 |
2 | 0 | 2 | 4 | 6 | 10 | 12 | 14 | 16 | 20 |
3 | 0 | 3 | 6 | 11 | 14 | 17 | 22 | 25 | 30 |
4 | 0 | 4 | 10 | 14 | 20 | 24 | 30 | 34 | 40 |
5 | 0 | 5 | 12 | 17 | 24 | 31 | 36 | 43 | 50 |
6 | 0 | 6 | 14 | 22 | 30 | 36 | 44 | 52 | 60 |
7 | 0 | 7 | 16 | 25 | 34 | 43 | 52 | 61 | 70 |
10 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 100 |
掛け算の方は10進法の九九の知識が邪魔をして混乱するために覚えにくそうです。
実際に計算する時は表を見ながら計算すると良いでしょう。
現実的には8進法で計算するメリットは殆どありません。
10進数か2進数、相性を考えると2進数に変換してから計算して、8進数に再変換するのが良いのではないかと思います。
16進法の計算表
以下は足し算の表です。数値は全て10進法の時と同じで表現が違うだけです。
+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 |
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 |
2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 |
3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 |
4 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 |
5 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 |
6 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
7 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
8 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
9 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
a | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a |
b | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b |
c | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c |
d | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d |
e | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e |
f | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f |
10 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f | 20 |
以下は掛け算の表です。数値は全て10進法の時と同じで表現が違うだけです。
× | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 |
2 | 0 | 2 | 4 | 6 | 8 | a | c | e | 10 | 12 | 14 | 16 | 18 | 1a | 1c | 1e | 20 |
3 | 0 | 3 | 6 | 9 | c | f | 12 | 15 | 18 | 1b | 1e | 21 | 24 | 27 | 2a | 2d | 30 |
4 | 0 | 4 | 8 | c | 10 | 14 | 18 | 1c | 20 | 24 | 28 | 2c | 30 | 34 | 38 | 3c | 40 |
5 | 0 | 5 | a | f | 14 | 19 | 1e | 23 | 28 | 2d | 32 | 37 | 3c | 41 | 46 | 4b | 50 |
6 | 0 | 6 | c | 12 | 18 | 1e | 24 | 2a | 30 | 36 | 3c | 42 | 48 | 4e | 54 | 5a | 60 |
7 | 0 | 7 | e | 15 | 1c | 23 | 2a | 31 | 38 | 3f | 46 | 4d | 54 | 5b | 62 | 69 | 70 |
8 | 0 | 8 | 10 | 18 | 20 | 28 | 30 | 38 | 40 | 48 | 50 | 58 | 60 | 68 | 70 | 78 | 80 |
9 | 0 | 9 | 12 | 1b | 24 | 2d | 36 | 3f | 48 | 51 | 5a | 63 | 6c | 75 | 7e | 87 | 90 |
a | 0 | a | 14 | 1e | 28 | 32 | 3c | 46 | 50 | 5a | 64 | 6e | 78 | 82 | 8c | 96 | a0 |
b | 0 | b | 16 | 21 | 2c | 37 | 42 | 4d | 58 | 63 | 6e | 79 | 84 | 8f | 9a | a5 | b0 |
c | 0 | c | 18 | 24 | 30 | 3c | 48 | 54 | 60 | 6c | 78 | 84 | 90 | 9c | a8 | b4 | c0 |
d | 0 | d | 1a | 27 | 34 | 41 | 4e | 5b | 68 | 75 | 82 | 8f | 9c | a9 | b6 | c3 | d0 |
e | 0 | e | 1c | 2a | 38 | 46 | 54 | 62 | 70 | 7e | 8c | 9a | a8 | b6 | c4 | d2 | e0 |
f | 0 | f | 1e | 2d | 3c | 4b | 5a | 69 | 78 | 87 | 96 | a5 | b4 | c3 | d2 | e1 | f0 |
10 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | a0 | b0 | c0 | d0 | e0 | f0 | 100 |
これを暗記するのは大変です。
両手で指が10本しかなくて良かったですね。
こちらの場合も暗記ではなく、必要になったら表を見ながら計算すると良いでしょう。
16進法で計算するメリットも殆どありませんので、2進数に変換してから計算して、16進数に再変換するのが良いのではないかと思います。
ちなみに、様々な基数のN進法で、2つの数の足し算の実行を視覚化したアニメーションプログラムが(こちら)にあります。
最後に、ある一つの数値を様々な位取り法で見てみましょう。
以下の数値は表現が違うだけで、全て同じ数値を表しています。
上の計算表を利用して、各々の位取り法での桁上がりを慎重に計算すると、横の並びが全て同じ数を表していることが確認できます。
混乱してしまう場合は無理に確かめる必要はありません、縦の並びを比較して納得してください。
\begin{align*}
\begin{array}{crlll}
&&\phantom{=}\mbox{2の累乗の展開式}&\phantom{=}\mbox{8の累乗の展開式}&\phantom{=}\mbox{10の累乗の展開式}&\phantom{=}\mbox{16の累乗の展開式}\\
\mbox{(2進法)} & 101011.11 &= 1\cdot 10^{101} + 0\cdot 10^{100} + 1\cdot 10^{11} + 0\cdot 10^{10} + 1\cdot 10^1 + 1\cdot 10^0 + 1\cdot 10^{-1} + 1\cdot 10^{-10} &= 101\cdot 1000^1 + 11\cdot 1000^0 + 110\cdot 1000^{-1} &= 100\cdot 1010^1 + 11\cdot 1010^0 + 111\cdot 1010^{-1} + 101\cdot 1010^{-2} &= 10\cdot 10000^1 + 1011\cdot 10000^0 + 1100\cdot 10000^{-1} \\
\mbox{(8進法)} & 53.6 &= 1\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0 + 1\cdot 2^{-1} + 1\cdot 2^{-2} &= 5\cdot 10^1 + 3\cdot 10^0 + 6\cdot 10^{-1} &= 4\cdot 12^1 + 3\cdot 12^0 + 7\cdot 12^{-1} + 5\cdot 12^{-2} &= 2\cdot 20^1 + 13\cdot 20^0 + 14\cdot 20^{-1} \\
\mbox{(10進法)} & 43.75 &= 1\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0 + 1\cdot 2^{-1} + 1\cdot 2^{-2} &= 5\cdot 8^1 + 3\cdot 8^0 + 6\cdot 8^{-1} &= 4\cdot 10^1 + 3\cdot 10^0 + 7\cdot 10^{-1} + 5\cdot 10^{-2} &= 2\cdot 16^1 + 11\cdot 16^0 + 12\cdot 16^{-1} \\
\mbox{(16進法)} & \rm 2b.c &= 1\cdot 2^5 + 0\cdot 2^4 + 1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0 + 1\cdot 2^{-1} + 1\cdot 2^{-2} &= 5\cdot 8^1 + 3\cdot 8^0 + 6\cdot 8^{-1} &= \rm 4\cdot a^1 + 3\cdot a^0 + 7\cdot a^{-1} + 5\cdot a^{-2} &= \rm 2\cdot 10^1 + b\cdot 10^0 + c\cdot 10^{-1}
\end{array}
\end{align*}