基本情報で必要な数学(2進数その1)


2進数とは

この記事では基本情報の参考書の最初に出てくる2進数についてまとめます。
ちなみに、数学が得意な人はともかく、参考書で2進数を最初に持ってこられると。挫折しやすくなるんじゃないでしょうか。もっと、とっつきやすいテーマから入った方がいいんじゃないかしら?
ちなみに、基本情報では2進数の計算そのものだけでなく、IPアドレスの計算やハードウェア分野の計算問題などで必要となります。

2進数と10進数

普通、人は

 \begin{array}{rrrrrrrrrr}
  & 0,&1,&2,&3,&4,&5,&6,&7,&8,&9 \\
  & 10,& 11,& 12.& 13,&14,&15,&16,&17,&18,&19\\

\end{array}

って数えます。(よね?)
それが2進数だと、

\begin{array}{rr}
0,& 1 \\
10,&11\\
100&101\\
110&111\\
\vdots
\end{array}

みたいに数えるということです。
10進数は9まで数えたら0にリセットされて次の位に1が加算されます。
2進数は1まで数えたら、0にリセットされて次の位に1が加算されます。
つまり、数え方のルールが違うというだけです。
ちなみに、私は別の理解をしています。その解説に入る前に指数について紹介しましょう。

指数

指数は同じ数を何回かけたかを示す数字です。
たとえを出しましょう。
2を3回かけると

$$
2\times 2 \times 2 = 2^{3}
$$
と表されます。10の3乗と読みます。
この3が指数です。この指数についてつぎの公式が成立します。
ちなみに、

2 = 2^1\\
2^{0}=1 

です。
どんな数字も指数が1の形で書けます。1つねに1は省略されています。
また、どんな大きな数字も指数に$0$が来ると$1$になります。
そして、指数について次の公式が成立します。
$$
2^{2}\times2^{3}=2^{2+3}=2^{5}
$$

10進数の理解と2進数の理解

10進数について

たとえば、10進数で$1573$はこんな風に見ることが出来ます。

\begin{eqnarray}
1573 &=& 1\times1000 &+& 5\times100 &+& 7\times10 &+& 3 \times 1\\
&=& 1\times10^{3} &+& 5\times10^{2} &+& 7\times10^{1} &+& 3 \times 10^{0}
\end{eqnarray}

10進数の10は各位を10の○○乗に分解して考えることができるわけです。
この理解で足し算を考えると

\begin{eqnarray}
1573 + 7 &=& 1\times10^{3} &+& 5\times10^{2} &+& 7\times10^{1} &+& 3 \times 10^{0} + 7\times10^{0}\\
&=& 1\times10^{3} &+& 5\times10^{2} &+& 7\times10^{1} &+& 10 \times 10^{0} \\
&=& 1\times10^{3} &+& 5\times10^{2} &+& 7\times10^{1} &+& 10^{1} \times 1 + 0 \\
&=& 1\times10^{3} &+& 5\times10^{2} &+& 8\times10^{1} &+& 0 \times10^{0} \\
&=& 1280
\end{eqnarray}

ここでは、因数分解とか数字の1倍や0倍が使われています。

2進数について

では2進数はどうでしょうか?2進数も10進数と同じです。
2進数の2は各位を2の○○乗に分解して考えることができるわけです。
2進数で$1101$は

1101 = 1 \times 2^{3} + 1 \times 2^{2} + 0 \times 2^{1} + 1\times 2^{0}

です。足し算も

\begin{eqnarray} 
1101 + 1 &=& 1 \times 2^{3} + 1 \times 2^{2} + 0 \times 2^{1} + 1\times 2^{0} * 1\times2^{0}\\
&=& 1 \times 2^{3} + 1 \times 2^{2} + 0 \times 2^{1} + 2\times 2^{0}\\
&=& 1 \times 2^{3} + 1 \times 2^{2} + 0 \times 2^{1} + 2^{0} \times 1 + 0\times2^{0}\\ 
&=&  1 \times 2^{3} + 1 \times 2^{2} + 1 \times 2^{1} +  0\times2^{0}\\
&=&  1110
\end{eqnarray}

と考えられるわけです。数学的にはそんなに難しい計算はしていませんが、指数で分解するということを理解してください。

2進数への変換

情報処理試験の計算で必須の計算を紹介しましょう。
よく、2の○○乗であまりを割っていく割れたら1,割れないと0といいます。

では、なんでそんなことが出来るのでしょうか?
それはつぎの画像で見てください。

このとき$X_{10}$は0か1です。でも、$X_{10}$が0ならこんな計算ができないわけです。だから、1とわかるわけです。そして、また余りを$2^{9},2^{8}...$とつぎつぎに割っていくわけです。
割れたら0、割れないと1です。
ちなみに、2の何乗とかは暗記しておいた方がいいです。なるべく速く計算できるようにしておいてください。

$2^{X}$ 数字 $2^{X}$ 数字
$2^{10}$ 1024 $2^{5}$ 32
$2^{9}$ 512 $2^{4}$ 16
$2^{8}$ 256 $2^{3}$ 8
$2^{7}$ 128 $2^{2}$ 4
$2^{6}$ 64 $2^{1}$ 2

2進数についてのまとめ

ここまでで、2進数についてと10進数についてを紹介しました。
基本情報試験では避けて通れない道ですから、頑張ってください。
その2では補数について紹介します。
その2のリンク
2進数その2の記事