ビットと記数法
現在のコンピュータでは、情報はビットと呼ばれる0と1のパターンへと符号化される。ビット(bit)とは、英語の binary digit (2進数字)の略であり、コンピュータ内部で表現される情報の最小単位である。一般的に8ビットが1バイト(Byte)という単位に対応しているが、初期のコンピュータでは6ビットや7ビットなどを1バイトとして扱うものもあった。
このビットのパターンによって数値や文字、画像や音声などのデータを表現している。
2進法
一般的に使用される、0〜9の10個の数字で表す方法は10進法、または10進記数法と呼ばれる。コンピュータ内部では、情報はビットでしか処理できないため、0と1で表わされる2進法が使用される。なお、10進法によって表された数を10進数、2進法によって表された数を2進数と呼ぶこともある。
それぞれの記数法による表記を区別するため、数値を括弧で囲み、下付きの数字で記数法を表す。例えば、2進法の場合は (11)2、10進法の場合は (11)10となる。ただし、このサイトではあまりこの表記はしない。
まず、10進法での表現について考えてみる。10進法で123という数値は、各数字の位置によって位取りが行われている。(1×100)+(2×10)+(3×1)つまり、(1×102)+(2×101)+(3×100)となる。
10進法の123を、2進法で表すと、1111011となる。
(1×26)+(1×25)+(1×24)+(1×23)+(0×22)+(1×21)+(1×20)
この場合、7桁のビットとなるので、ビット数は7ビット(7bit)となる。
一般に、Nを1より大きな自然数とした場合、N進法での位取りは1桁目から順に、
N0、N1、N2・・・N(桁数-1)
2進法の場合では、20=1、21=2、22=4・・・2(桁数-1)となる。
| 桁数 | 位取り |
|---|---|
| 1 | 20=1 |
| 2 | 21=2 |
| 3 | 22=4 |
| 4 | 23=8 |
| 5 | 24=16 |
| 6 | 25=32 |
| … | … |
| n | 2n-1 |
| 2進数 | 10進数 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 10 | 2 |
| 11 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | 10 |
小数の表現
2進法を小数まで拡張するには、10進法と同様に小数点で表し、小数点より左側が整数部、右側が小数部となる。10進法の場合は、小数点以下1桁目から、10-1=1/10、10-2=1/100、10-3=1/1000・・・という位取り行われているが、2進法の場合も同様に、2-1=1/2、2-2=1/4、2-3=1/8・・・という位取りが行われる。
例えば、2進法の0.101を10進法で表すと(1×2-1)+(0×2-2)+(1×2-3)つまり、1/2+1/8 = 5/8 となる。
| 小数点以下の桁数 | 位取り |
|---|---|
| 1 | 2-1=1/2 |
| 2 | 2-2=1/4 |
| 3 | 2-3=1/8 |
| 4 | 2-4=1/16 |
| 5 | 2-5=1/32 |
| 6 | 2-6=1/64 |
| … | … |
| n | 2-n |
16進法
コンピュータの内部動作を考えるとき、ビットパターンを扱うことがあるが、2進法による表記では非常に長くなるため、人間が読み取るには時間がかかるうえに間違いやすい。そこで、このようなビットパターンを人間が理解しやすいようにするために、16進法を使用することが多い。コンピュータの内部では、4ビットをひとつのまとまりとして使用することが多いので、4ビットを1桁で表せる16進法は都合が良いのである。
16進法の表記は、ビットパターンの列を4ビット毎に分割し、対応する16進法の記号に当てはめることで得られる。
例えば、1000110011101111のビットパターンを4ビット毎に分割すると、1000 1100 1110 1111となり、1000は8、1100はC、1110はE、1111はFとなるので、16進法では8CEFとなる。
| ビットパターン | 16進数 |
|---|---|
| 0000 | 0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
| 10000 | 10 |