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 |