コンピューターは「0と1」で動いている
パソコンやスマホの中では、文字、写真、音楽、動画などのすべてが、0と1の並びとして扱われています。これは、電気回路が、「オン(1)」と「オフ(0)」の2つの状態を、確実に区別しやすいためです。
この0と1だけで数を表す方法が、2進数です。1つの0または1を、1ビットと呼び、8ビットで、1バイトになります。単位の詳しい解説は、ギガ・メガ・バイトの違いをご覧ください。
10進数と2進数の違い
私たちが普段使う10進数は、0〜9の10種類の数字を使い、10になると桁が上がります。2進数は、0と1の2種類だけを使い、2になると桁が上がります。
| 10進数 | 2進数 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 8 | 1000 |
| 10 | 1010 |
| 15 | 1111 |
2進数を10進数に直す方法
2進数の各桁は、右から順に、**1、2、4、8、16、…**という重みを持っています。1が立っている桁の重みを、足し合わせます。
たとえば、2進数の「1101」は、次のように計算します。
- 左から、8の位が1 → 8
- 4の位が1 → 4
- 2の位が0 → 0
- 1の位が1 → 1
合計は、8+4+0+1 = 13です。
10進数を2進数に直す方法
10進数の数を、2で割り続け、余りを下から並べる方法があります。13の場合は、次のようになります。
- 13 ÷ 2 = 6 余り 1
- 6 ÷ 2 = 3 余り 0
- 3 ÷ 2 = 1 余り 1
- 1 ÷ 2 = 0 余り 1
余りを、下から順に並べると、「1101」になります。
16進数とは
2進数は、桁が多くなり、人間には読みにくいのが難点です。そこで、4ビットを、1桁にまとめられる16進数が、よく使われます。
16進数は、0〜9に加えて、A〜Fを使い、16で桁が上がります。
| 10進数 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|
| 16進数 | A | B | C | D | E | F |
たとえば、1バイト(8ビット)の最大値は、10進数で255、2進数で「11111111」、16進数では「FF」と、2桁で書けます。
身近な利用例
色コード
Webサイトの色は、「#FF0000」のように、16進数で指定します。これは、「赤・緑・青」の3色を、それぞれ2桁の16進数(00〜FF、つまり0〜255)で表したものです。
- #FF0000:赤が最大、緑と青が0 → 赤
- #000000:すべて0 → 黒
- #FFFFFF:すべて最大 → 白
IPアドレス
IPv4のアドレスは、「192.168.0.1」のように、0〜255の数を4つ並べます。これは、1バイト(8ビット)ごとに区切って、10進数で表したものです。詳しくは、IPアドレスとはと、IPv4とIPv6の違いで解説しています。
振り返ると
コンピューターは、0と1だけで、あらゆる情報を表しています。2進数は、その基本の表し方で、16進数は、2進数を短く書くための表記です。色コードやIPアドレスなど、身近なところで使われているため、基本を知っておくと、理解が進みます。
関連記事:変数とは