2進数の変換方法

このページでは、2進数を10進数に変換する方法と、10進数を2進数に変換する方法を説明しています。

例題ともに、変換方法を理解しましょう!変換が成り立つ原理も説明しています。

10進数「26」を2進数に変換すると「11010」となる。


もくじ

  1. 2進数から10進数への変換
  2. 10進数から2進数への変換
  3. 10進数と2進数の対応表

2進数から10進数への変換

2進数を10進数に変換するには、2進数の各位の数字にその位の「重み」を掛けて、すべての桁について足し合わせます。

ここで「重み」という言葉が出てきました。2進数のn桁目の重みは、2n-1です。例えば、2進法の4桁目の重みは23(=8)となります。

それでは、2進数「11010」を10進数に変換してみましょう。下の表に、各位の数字とその位の重みを示しました。

2進数11010の各位の数とその重み
2進数11010
重み2423222120

あとは、各位の数とその位の重みを掛けて、すべての桁について足し合わせます。この例の場合、

\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進数(1001100)2を10進数に変換せよ。

まずは、2進数の各位の数字とその重みを下の表で確認しましょう。

2進数(1001100)2の各位の数と重み
2進数1001100
重み26252423222120

各位の数とその位の重みを掛けて、すべての桁について足し合わせると、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の累乗表を下に載せました。

2の累乗表
201
212
224
238
2416
2532
2664
27128
28256
29512
2101,024
2112,048
2124,096
2138,192
21416,384
21532,768
21665,536
217131,072
218262,144
219524,288
2201,048,576
2212,097,152
2224,194,304
2238,388,608
22416,777,216
22533,554,432
22667,108,864
227134,217,728
228268,435,456
229536,870,912
2301,073,741,824

10進数から2進数への変換

10進数を2進数に変換するには、変換する10進数を2で繰り返し割っていき、その余り(0か1になる)を下位から上位へ順に並べていきます。

例として、10進数(26)10を2進数に変換する方法を見てみましょう。まず、26を2で割ります。この商は13、余りは0ですね。これを次のように書くこととします。

26÷2=13あまり0 の筆算
26÷2=13あまり0 の筆算

これは

\[ 26 = 2\times 13+0 \]

を意味します。

さらに、ここで得られた商13を2で割ると、次のようになります。

13÷2=6あまり1 の筆算
13÷2=6あまり1 の筆算

これは

\[ 13=2\times 6+1 \]

を表します。

この操作を商が1または0になるまで(2で割り切れなくなるまで)繰り返し続けていきます。すると、次のようになります。

10進数26を2進数に変換する方法
10進数26を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進数に変換せよ。

上で説明したのと同様の手順で、筆算を行います。

10進数(109)を2進数に変換する筆算
10進数(109)10を2進数に変換する筆算

したがって、10進数(109)10を2進数に変換すると、(1101101)2となります。

10進数と2進数の対応表

最後に、10進数で表された0から31までの整数を、2進数に変換した対応表を示します。

10進数と2進数の対応表((0)10から(31)10までの整数値)
10進数2進数
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111
1610000
1710001
1810010
1910011
2010100
2110101
2210110
2310111
2411000
2511001
2611010
2711011
2811100
2911101
3011110
3111111