こんにちは、ボム君です。
今回はプログラミングで頻繁に使用される2進数について解説してみました。
この2進数はプログラミングの基礎でもあり、数字を扱うプログラムを使う場合は必須の知識でもあります。しっかりと理解しましょう。
まずは10進数を知ろう
あなたがプログラミングを未経験なら〇〇進数という表現は初めて聞くでしょう。〇〇進数というのは言わば数値の表現の仕方。同じ数を表すにしても〇〇の部分が変わると表記の仕方が変わります。
私たちは普段の日常生活で使っているのは10進数の数字です。
テレビのリモコンやカレンダーの日付、時計の時間やお金等すべてが10進数の表記です。

10進数の「10」とは何か考えたことはあるでしょうか? これは基数のことを意味しています。基数という言葉は初めてかもしれないので簡単に説明しておきます。
例えば、10進数の「10」という数字は10の1乗、「100」は10の2乗というように表現できます。この何乗かのベースになる値が基数です。↓

〇進数というのはこの基数が基準で計算されます。10進数と基数の関係分かってきましたか?
詳しく書くと10進数と基数は以下のような関係になります。「10」という基数の〇乗に対して掛ける数値(↓以下の場合だと1,4,5)を並べたものが10進数の表記になります。

2進数とは
10進数が分かったとこで次は2進数を理解しましょう。
10進数とは10で桁が上がる数字のことでした。ではこれと同じ考えでいくと2進数はどうでしょう?
そう、「2」を基数として表記される数字のことです。

そのため、2進数で使うのは0or1のみ。つまり2進数とは0or1で表現する数値です。↓

2進数と基数の関係を詳しく見てみると以下のようになります。↓

このように2進数の表記は0と1が並んだ数になるので、2進数以下のような表記になります。
2進数の表記例
- 0010
- 1000
- 10001101
2進数の表記って何者かというのは分かりましたか?では次の章で2進数と10進数の関係を詳しくみてみましょう。
2進数の値は10進数で何?
2進数のイメージは分かったと思います。ですが、ここで初心者にとって難しい点があります。それは「10進数で表現すると何の数字?」という点です。
例えば、2進数の「11」は10進数で表わすといくつでしょうか?
2進数の「11」というのは10進数で表わすと「3」になります。↓

0から始まるのは10進数と同じ。ですが、基数が異なるため桁上がりのタイミングは異なります。なので、同じ「11」という表記でも意味は全く違う。だから変換が必要になります。
2進数⇔10進数をカンタンに変換
先ほどの内容で2進数と10進数の関係がある程度理解できたと思います。ですが、変換がなんだかややこしく感じませんでしたか?なので、カンタンに変換できる方法を教えます。
プログラミングでは2進数と10進数との間で変換をする場面が多々あります。変換はできるだけすばやくできるようにしましょう。
2進数⇒10進数への変換
高速変換のコツは2の〇乗が10進数の何かを覚えておくこと。
2の0~7乗までは暗記しておきましょう。2倍ずつ増えていくだけなので簡単に覚えれますよね。
- 20=1
- 21=2
- 22=4
- 23=8
- 24=16
- 25=32
- 26=64
- 27=128
2の0〜8乗位までは暗記しておきましょう。これを暗記しておくと各桁の変換がカンタンにできるようになるので高速変換ができるようになります。変換の手順。↓

10進数⇒2進数への変換
10進数から2進数への変換は割り算を使います。10進数の数値をひたすら2で割っていくことで変換ができます。
たとえば10進数の123という数字の変換を見てみましょう。この123という数値を割れなくなるまで2で割り、最後の余りを先頭にして並べたものが2進数表記になります。
- 123÷2=61 余り:1
- 61÷2 =30 余り:1
- 30÷2 =15 余り:0
- 15÷2 =7 余り:1
- 7÷2 =3 余り:1
- 3÷2 =1 余り:1
- 1÷2 =0 余り:1
最後の余りを先頭から並べると2進数表記になります。 ⇒ 1111011
ひたすら2で割っていくだけなのでカンタンですよね。割り算を早くできれば変換も早くできるようになります。
まとめ
今回は2進数について解説しましたが分かりましたでしょうか?
プログラミングでは2進数というのは頻繁に使われるので何度も練習して早く変換できるようになりましょう。