Notes_JP

あまり知られていないこと

【導出】10進数から2進数への変換法

2進数の各桁を求めるのだって,10進数の各桁を求めるのと同じ操作に過ぎないのです.
難しいことは何もありません.

まず,2進数とは何だったか思い出してみましょう.

2進数とは

2進数とは,
\begin{align}
X=
a_N\cdot 2^N+\cdots + a_0\cdot 2^0
+a_{-1}\cdot 2^{-1}+a_{-2}\cdot 2^{-2}+\cdots
\qquad(a_n=0,1)
\end{align}
で表される実数$X$を
\begin{align}
(X)_2=a_N \cdots a_0.a_{-1}a_{-2}\cdots
\end{align}
と表す方法のことです.

10進数→2進数

Step1 整数部分

まず,$X$の整数部分
\begin{align}
a_N\cdot 2^N+\cdots + a_0\cdot 2^0
\tag{1}\label{eq:zpart}
\end{align}
を2進数で表す方法を考えましょう.

$a_0$を求める

\begin{align}
a_N\cdot 2^N+\cdots + a_0\cdot 2^0
=2\cdot\color{blue}{(a_N\cdot 2^{N-1}+\cdots + a_1\cdot 2^0)}+\color{red}{a_0}
\end{align}
ですから,式(\ref{eq:zpart})を2で割ると,その余りとして$\color{red}{a_0}$が求めらることがわかります.

$a_1$を求める

さて,式(\ref{eq:zpart})を2で割った商$\color{blue}{(a_N\cdot 2^{N-1}+\cdots + a_1\cdot 2^0)}$を見ると,これを2で割った余りとして$a_1$が求められることがわかりますね.

$a_n$を求める

以下同じ操作を続けることで,$a_n$を求めることができます.

Step2 小数部分

次に,$X$の小数部分
\begin{align}
a_{-1}\cdot 2^{-1}+a_{-2}\cdot 2^{-2}+\cdots
\tag{2}\label{eq:2part}
\end{align}
を2進数で表す方法を考えましょう.

$a_{-1}$を求める

整数部分を変換する操作と同じ発想です.今度は$2^{-1}$をくくり出すと,
\begin{align}
a_{-1}\cdot 2^{-1}+a_{-2}\cdot 2^{-2}+\cdots
=2^{-1}\cdot\bigl[\color{red}{a_{-1}}+ \color{blue}{(a_{-2}\cdot 2^{-1}+a_{-3}\cdot 2^{-2}+\cdots)}\bigr]
\end{align}
ですから,式(\ref{eq:2part})に2を掛けると,その整数部分として$\color{red}{a_{-1}}$が求めらることがわかります.

$a_{-2}$を求める

式(\ref{eq:2part})に2を掛けて得られた小数部分$$\color{blue}{(a_{-2}\cdot 2^{-1}+a_{-3}\cdot 2^{-2}+\cdots)}$$に2を掛けたときの整数部分が$a_{-2}$です.

$a_{-n}$を求める

同じ操作を繰り返すことでもとめられます.

練習問題:10進数→$N$進数

上では2進数への変換を議論しましたが,全く同様に$N$進数への変換方法も導けます.
(まずは,10進数の各桁を上の方法で求めていることを再確認してみて下さい.)

最後に

このような,「級数の係数を求める」手法は様々な場面で出くわします.
例えば,複素関数論における留数の公式を思い出してみてください.