2進数の変換方法
このページでは、2進数を10進数に変換する方法と、10進数を2進数に変換する方法を説明しています。
例題ともに、変換方法を理解しましょう!変換が成り立つ原理も説明しています。
もくじ
2進数から10進数への変換
2進数を10進数に変換するには、2進数の各位の数字にその位の「重み」を掛けて、すべての桁について足し合わせます。
ここで「重み」という言葉が出てきました。2進数のn桁目の重みは、2n-1です。例えば、2進法の4桁目の重みは23(=8)となります。
それでは、2進数「11010」を10進数に変換してみましょう。下の表に、各位の数字とその位の重みを示しました。
| 2進数 | 1 | 1 | 0 | 1 | 0 |
|---|---|---|---|---|---|
| 重み | 24 | 23 | 22 | 21 | 20 |
あとは、各位の数とその位の重みを掛けて、すべての桁について足し合わせます。この例の場合、
\begin{align*} &\hphantom{=} \underbrace{1\times 2^4}_{5桁目}+\underbrace{1\times 2^3}_{4桁目}+\underbrace{0\times 2^2}_{3桁目}+\underbrace{1\times 1^1}_{2桁目}+\underbrace{0\times 2^0}_{1桁目} \\[5pt] &= 26 \end{align*}
となるので、2進数(11010)2を10進数に変換すると、26になります。
例題
まずは、2進数の各位の数字とその重みを下の表で確認しましょう。
| 2進数 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
|---|---|---|---|---|---|---|---|
| 重み | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
各位の数とその位の重みを掛けて、すべての桁について足し合わせると、10進数に変換することができます。下に載せた2の累乗表も参考に計算してください。
\begin{align*} &\hphantom{=} 1\times 2^6+0\times 2^5+0\times 2^4+1\times 2^3+1\times 2^2+0\times 1^1+0\times 2^0 \\[5pt] &= 64+8+4 \\[5pt] &= 76 \end{align*}
したがって、2進数(1001100)2を10進数に変換すると、76になります。
2の累乗表
計算の参考になるように、2進数の重みを示す2の累乗表を下に載せました。
| 20 | 1 |
|---|---|
| 21 | 2 |
| 22 | 4 |
| 23 | 8 |
| 24 | 16 |
| 25 | 32 |
| 26 | 64 |
| 27 | 128 |
| 28 | 256 |
| 29 | 512 |
| 210 | 1,024 |
| 211 | 2,048 |
| 212 | 4,096 |
| 213 | 8,192 |
| 214 | 16,384 |
| 215 | 32,768 |
| 216 | 65,536 |
| 217 | 131,072 |
| 218 | 262,144 |
| 219 | 524,288 |
| 220 | 1,048,576 |
| 221 | 2,097,152 |
| 222 | 4,194,304 |
| 223 | 8,388,608 |
| 224 | 16,777,216 |
| 225 | 33,554,432 |
| 226 | 67,108,864 |
| 227 | 134,217,728 |
| 228 | 268,435,456 |
| 229 | 536,870,912 |
| 230 | 1,073,741,824 |
10進数から2進数への変換
10進数を2進数に変換するには、変換する10進数を2で繰り返し割っていき、その余り(0か1になる)を下位から上位へ順に並べていきます。
例として、10進数(26)10を2進数に変換する方法を見てみましょう。まず、26を2で割ります。この商は13、余りは0ですね。これを次のように書くこととします。
これは
\[ 26 = 2\times 13+0 \]
を意味します。
さらに、ここで得られた商13を2で割ると、次のようになります。
これは
\[ 13=2\times 6+1 \]
を表します。
この操作を商が1または0になるまで(2で割り切れなくなるまで)繰り返し続けていきます。すると、次のようになります。
最後の商、続けて、得られた余り(上図にオレンジ色で示した数)を最後のものから順に並べていくと、「11010」となります。これが、10進数26を2進数に変換した値です。
この筆算によって2進数に変換できる原理は、次の式を見ると分かります。最終的に、2進数の各位の「重み」に1または0を掛ける形に変換できます。
\begin{align*} 26 &= 2\times13+0 \\[5pt] &=2(2\times6+1)+0 \\[5pt] &=2(2(2\times3+0)+1)+0 \\[5pt] &=2(2(2(2\times 1+1)+0)+1)+0 \\[5pt] &=1\times 2^4+1\times 2^3+0\times 2^2+1\times 2^1+0\times 2^0 \\[5pt] &=(11010)_2 \end{align*}
となります。これが変換の原理です。
例題
上で説明したのと同様の手順で、筆算を行います。
したがって、10進数(109)10を2進数に変換すると、(1101101)2となります。
10進数と2進数の対応表
最後に、10進数で表された0から31までの整数を、2進数に変換した対応表を示します。
| 10進数 | 2進数 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1110 |
| 15 | 1111 |
| 16 | 10000 |
| 17 | 10001 |
| 18 | 10010 |
| 19 | 10011 |
| 20 | 10100 |
| 21 | 10101 |
| 22 | 10110 |
| 23 | 10111 |
| 24 | 11000 |
| 25 | 11001 |
| 26 | 11010 |
| 27 | 11011 |
| 28 | 11100 |
| 29 | 11101 |
| 30 | 11110 |
| 31 | 11111 |