循環小数の基数変換

logic

10進数の0.8を16進数と2進数に基数変換します。

まず、普通に計算して16進数に変換する方法を紹介した後に、無限等比級数の和の公式を利用する方法を紹介します。

普通に計算する

10進数の0.8は、分数の形で\( \frac{8_{10}}{10_{10}} \)です。まず、この分子と分母をそれぞれ16進数で表すと\( \frac{8_{16}}{A_{16}} \)になります。次に、筆算で\(8_{16}\)を\(A_{16}\)で割ります。

このように、結果は\(0.\dot{C}_{16}\)という循環小数になることがわかります。

無限等比級数の和の公式

次の公式を利用して、循環小数を求める方法です。

初項がa, 公比がrの等比級数の和は\( \frac{a}{1 – r} \)
ただし、-1 < r < 1

例えば、初項が0.2, 公比が0.1の等比級数の和は
\( \frac{0.2}{1 – 0.1} = \frac{0.2}{0.9} = 0.2222… = 0. \dot{2} \)
これは、循環小数\( 0. \dot{2} \)は、初項が\( 0.2 = \frac{2}{10} \)、公比が\( 0.1 = \frac{1}{10} \)の等比級数の和で表されることを意味します。

基数変換への応用

循環小数\( 0. \dot{2} \)の例を16進数の場合に置き換えると、
16進数の循環小数は、初項が\( 0.X_{16} = \frac{X_{16}}{10_{16}} \)、公比が\( 0.1_{16} = \frac{1_{16}}{10_{16}} \)の等比級数の和で表すことができます。
$$ 0. \dot{X}_{16} = \frac{0.X_{16}}{1-0.1_{16}} = \frac{ \frac{X_{16}}{10_{16}}}{ \frac{10_{16}}{10_{16}}-\frac{1_{16}}{10_{16}}} = \frac{ \frac{X_{16}}{10_{16}}}{ \frac{f_{16}}{10_{16}}} = \frac{X_{16}}{f_{16}} $$

この\(\frac{X_{16}}{f_{16}}\)という式を利用すると、分数の形から16進数の循環小数\(0. \dot{X}_{16}\)を簡単に求めることができます。

0.8の16進数表記と2進数表記

16進数表記

まず、10進数の0.8を分数の形で表します。

$$ 0.8_{10} = \frac{8}{10} = \frac{4}{5} $$
ここで、分母と分子に3を掛けると分母が10進数で15になります。次に、分母と分子をそれぞれ16進数に置き換えます。
$$ \frac{4}{5} = \frac{12}{15} = \frac{c_{16}}{f_{16}} $$
これを、16進数の無限等比級数の和の公式から求めた式\(\frac{X_{16}}{f_{16}} = 0. \dot{X}_{16}\)に当てはめると
$$ \frac{C_{16}}{f_{16}} = 0. \dot{C}_{16} $$

となります。

2進数表記

16進数の結果\(0. \dot{C}_{16}\)について、\( C_{16} = 1100_{2} \)なので、2進数では次のように表されます。
$$ 0. \dot{C}_{16} = 0. \dot{1}10\dot{0} $$

タイトルとURLをコピーしました