ビットと記数法

現在のコンピュータでは、情報はビットと呼ばれる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)となる。

2進法の位取り
桁数位取り
120=1
221=2
322=4
423=8
524=16
625=32
n2n-1
2進法と10進法の関係
2進数10進数
00
11
102
113
1004
1015
1106
1117
10008
10019
101010

小数の表現

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 となる。

2進法の小数部の位取り
小数点以下の桁数位取り
12-1=1/2
22-2=1/4
32-3=1/8
42-4=1/16
52-5=1/32
62-6=1/64
n2-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進数
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
1000010
コンピュータの基礎