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

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

```math
 \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進数だと、

```math
\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が指数です。この指数についてつぎの公式が成立します。
ちなみに、

```math
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$はこんな風に見ることが出来ます。

```math 
\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の○○乗に分解して考えることができるわけです。*
この理解で足し算を考えると

```math  
\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$は

```math  
1101 = 1 \times 2^{3} + 1 \times 2^{2} + 0 \times 2^{1} + 1\times 2^{0}
```
です。足し算も

```math  
\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といいます。
![qiita 1(2進数への変換).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531515/41348ba5-4bfd-4e09-5c64-435131ead083.png)

では、なんでそんなことが出来るのでしょうか?
それはつぎの画像で見てください。
![qiita 1(2進数への変換2).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531515/330f9501-38a5-2cee-e5f6-df87ff14a474.png)
このとき$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の記事](https://qiita.com/Naoki_H/items/5983820f6229483e126f)