動画の解説を参照
\((205.8125)_{10}\)
という10進数に対応する2進数は、整数部分と小数部分に分けて求められます。
まず、元の10進数の整数部分 205 を 2 で割って右に商・余りを書きます。
次の行では商の値をもとに同じことを行います。
これを商が0になるまで繰り返します。
| 計算(省略可) |
商 |
余り |
| 205/2 |
102 |
1 |
| 102/2 |
51 |
0 |
| 51/2 |
25 |
1 |
| 25/2 |
12 |
1 |
| 12/2 |
6 |
0 |
| 6/2 |
3 |
0 |
| 3/2 |
1 |
1 |
| 1/2 |
0 |
1 |
表の余りの列を
下から順に並べた
\((11001101)_2\)
が整数部分を2進数にしたものです。
(逆に変換して検算すれば、128 + 64 + 8 + 4 + 1 = 205 で確かに元の10進数に等しいことがわかります)
小数部分を求めるときも似たような手順です。
まず、元の10進数の小数部分 0.8125 に 2 をかけて、右に計算結果の小数部分と整数部分を書き出します。
次の行では小数部分の値をもとに同じことを行います。
これを小数部分が0になるまで繰り返します。
| 計算(省略可) |
小数部分 |
整数部分 |
| 0.8125\(\times\)2 |
0.625 |
1 |
| 0.625\(\times\)2 |
0.25 |
1 |
| 0.25\(\times\)2 |
0.5 |
0 |
| 0.5\(\times\)2 |
0 |
1 |
表の整数部分の列を
上から順に並べた
\((0.1101)_2\)
が小数部分を2進数にしたものです。
(逆に変換して検算すれば、これは1/2 + 1/4 + 1/16 = 0.5 + 0.25 + 0.0625 = 0.8125で確かに元の10進数に等しいことがわかります)
このようにして求めた整数部分と小数部分を合わせて
\((205.8125)_{10} = (11001101.1101)_2\)
となります。
動画の解説を参照
10進数を8進数にする手順も、基本的に10進数から2進数への変換と同じで、割る数・かける数が2から8に変わるだけです。
変換前の10進数を前項と同じ \((205.8125)_{10}\) として考えてみましょう。
まず元の10進数の整数部分 205 を 8で割って右に商・余りを書きます。
次の行では商の値をもとに同じことを行います。
これを商が0になるまで繰り返します。
| 計算(省略可) |
商 |
余り |
| 205/8 |
25 |
5 |
| 25/8 |
3 |
1 |
| 3/8 |
0 |
3 |
表の余りの列を
下から順に並べた
\((315)_8\)
が整数部分を8進数にしたものです。
(逆に変換して検算すれば、これは 3 × 64 + 1 × 8 + 5 = 192 + 8 + 5 = 205 で確かに元の10進数に等しいことがわかります)
小数部分を求めるときも似たような手順です。
まず、元の10進数の小数部分 0.8125 に 8 をかけて、右に計算結果の小数部分と整数部分を書き出します。
次の行では小数部分の値をもとに同じことを行います。
これを小数部分がなくなるまで繰り返します。
| 計算(省略可) |
小数部分 |
整数部分 |
| 0.8125\(\times\)8 |
0.5 |
6 |
| 0.5\(\times\)8 |
0 |
4 |
表の整数部分の列を
上から順に並べた
\((0.64)_8\)
が小数部分を8進数にしたものです。
(逆に変換して検算すれば、これは6/8 + 4/64 = 0.75 + 0.0625 = 0.8125で確かに元の10進数に等しいことがわかります)
このようにして求めた整数部分と小数部分を合わせて
\((205.8125)_{10} = (315.64)_8\)
となります。
を8進数に変換してください。計算過程も書いてください。
課題2ヒント
動画の解説を参照
10進数を16進数にする手順も同様で、割る数・かける数が16に変わるだけです。
変換前の10進数を \((158.7578125)_{10}\) として考えてみましょう。
まず、元の10進数の整数部分 158 を 16で割って右に商・余り・余りを16進表記にしたものを書きます。
次の行では商の値をもとに同じことを行います。
これを商が0になるまで繰り返します。
| 計算(省略可) |
商 |
余り |
16進表記 |
| 158/16 |
9 |
14 |
E |
| 9/16 |
0 |
9 |
9 |
16進表記の列を
下から順に並べた
(9E)\(_{16}\)
が整数部分を16進数にしたものです。
(逆に変換して検算すれば、これは 9 × 16 + 14 = 144 + 14 = 158 で確かに元の10進数に等しいことがわかります)
小数部分を求めるときも似たような手順です。
まず、元の10進数の小数部分 0.7578125 に 16 をかけて右に計算結果の小数部分・整数部分・余りを16進表記にしたものを書き出します。
次の行では小数部分の値をもとに同じことを行います。
これを小数部分がなくなるまで繰り返します。
| 計算(省略可) |
小数部分 |
整数部分 |
16進表記 |
| 0.7578125\(\times\)16 |
0.125 |
12 |
C |
| 0.125\(\times\)16 |
0 |
2 |
2 |
16進表記の列を
上から順に並べた
(0.C2)\(_{16}\)
小数部分を16進数にしたものです。
(逆に変換して検算すれば、これは12/16 + 2/256 = 0.75 + 0.0078125 = 0.7578125で確かに元の10進数に等しいことがわかります)
このようにして求めた整数部分と小数部分を合わせて
\((158.7578125)_{10} =\) (9E.C2)\(_{16}\)
となります。
を16進数に変換してください。計算過程も書いてください。
課題3ヒント
動画の解説を参照
\(2^3=8\) なので、1桁の8進数は3桁の2進数に対応します。
| 8進数 |
2進数 |
| \((0)_8\) |
\((000)_2\) |
| \((1)_8\) |
\((001)_2\) |
| \((2)_8\) |
\((010)_2\) |
| \((3)_8\) |
\((011)_2\) |
| \((4)_8\) |
\((100)_2\) |
| \((5)_8\) |
\((101)_2\) |
| \((6)_8\) |
\((110)_2\) |
| \((7)_8\) |
\((111)_2\) |
そのため、桁ごとに置き換えるだけで2進数↔8進数の変換ができます。例えば
\((11001101.1101)_2\)
という2進数の整数部分を「011」「001」「101」、小数部分を「110」「100」のように小数点を基準に3桁ずつ区切って表の8進数に置き換えれば、
\((11001101.1101)_2 = (315.64)_8\)
となります。
同様に、
\(2^4=16\) なので1桁の16進数は4桁の2進数に対応します。
| 16進数 |
2進数 |
| (0)\(_{16}\) |
\((0000)_2\) |
| (1)\(_{16}\) |
\((0001)_2\) |
| (2)\(_{16}\) |
\((0010)_2\) |
| (3)\(_{16}\) |
\((0011)_2\) |
| (4)\(_{16}\) |
\((0100)_2\) |
| (5)\(_{16}\) |
\((0101)_2\) |
| (6)\(_{16}\) |
\((0110)_2\) |
| (7)\(_{16}\) |
\((0111)_2\) |
| (8)\(_{16}\) |
\((1000)_2\) |
| (9)\(_{16}\) |
\((1001)_2\) |
| (A)\(_{16}\) |
\((1010)_2\) |
| (B)\(_{16}\) |
\((1011)_2\) |
| (C)\(_{16}\) |
\((1100)_2\) |
| (D)\(_{16}\) |
\((1101)_2\) |
| (E)\(_{16}\) |
\((1110)_2\) |
| (F)\(_{16}\) |
\((1111)_2\) |
そのため、桁ごとに置き換えるだけで2進数↔16進数の変換ができます。例えば
\((11001101.1101)_2\)
という2進数の整数部分を「1100」「1101」、小数部分を「1101」のように小数点を基準に4桁ずつ区切って表の16進数に置き換えれば、
\((11001101.1101)_2 =\) (CD.D)\(_{16}\)
となります。