TERM GUIDE · DIGITAL

ビット

「ビット」とは

ビット(bit)は、コンピュータが情報を表すときの基本となる単位であり、0または1の2通りの状態を表します。bitは「binary digit(二進数字)」に由来する言葉です。

例えば、スイッチの「OFF/ON」、LEDの「消灯/点灯」のように、二つの状態を0と1に対応させれば、1ビットで表すことができます。

実際のコンピュータでは、0と1そのものを保存しているというより、物理的な二つの状態を0と1に対応させています。例えばHDDでは磁性体の磁化状態の違いを利用してビットを記録します。装置によっては電気的な状態など、別の仕組みが使われます。

ビット数と表現できる状態の数

1ビットには、0と1の2通りがあります。

2ビットでは、00、01、10、11の4通りを表せます。

同様に、次のようになります。

3ビット → 23=8通り
4ビット → 24=16通り
5ビット → 25=32通り
6ビット → 26=64通り
7ビット → 27=128通り
8ビット → 28=256通り

各ビットがそれぞれ0または1を独立に取るので、nビットで表せるビット列は2n通りとなります。

例えば、3個のLEDがそれぞれ点灯・消灯の2状態を取るなら、その組合せは23=8通りです。すべて消灯している場合も一つの組合せとして数えます。

必要な最小ビット数

反対に、「M種類の状態を区別するには何ビット必要か」という問題では、

2n ≧ M

を満たす最小の整数nを求めます。

例えば26種類の文字を区別する場合、

24=16
25=32

なので、4ビットでは不足し、5ビットあれば足ります。したがって最小5ビットです。

100種類の場合は、

26=64
27=128

なので7ビット必要です。

24時間制の「時」は0~23の24通りなので5ビット、「分」は0~59の60通りなので6ビット必要です。

ビットと整数

nビットのすべてを数値の大きさに使う符号なし整数では、

0~2n−1

の整数を表せます。

例えば8ビットでは、0~255の256種類の整数を表せます。

負の数も扱う2の補数表現では、nビットで表せる範囲は、

−2n−1 ~ 2n−1−1

となります。例えば8ビットなら−128~127です。

表せる範囲を計算結果が超えることをオーバーフローといいます。

ビットとバイト

データ量ではバイトもよく使われます。

1バイト=8ビット

なので、次のように考えます。

  • バイトからビットへ直すときは8倍

  • ビットからバイトへ直すときは8で割る

例えば16バイトは、

16×8=128ビット

です。

k(キロ)、M(メガ)、G(ギガ)とKiB(キビ)、MiB(メビ)、GiB(ギビ)

通信速度やデータ量では、k(キロ)、M(メガ)、G(ギガ)などの接頭語を付けて表すことがあります。

1kビット=1,000ビット=103ビット
1Mビット=1,000kビット=1,000,000ビット=106ビット
1Gビット=1,000Mビット=1,000,000kビット=1,000,000,000ビット=109ビット

一方、2進数を基準とする接頭語では、次のように表します。

1KiB=1,024バイト=210バイト
1MiB=220バイト
1GiB=230バイト

例えば、

8kB=8×1,000=8,000バイト
8KiB=8×1,024=8,192バイト

となります。

ビット演算

0と1の各桁に対して行う演算をビット演算といいます。

  • ANDは、両方が1のときだけ1になります。特定のビットだけを残す処理などに使われます。

  • ORは、どちらか一方でも1なら1になります。特定のビットを1にする処理などに使われます。

  • XORは、二つのビットが異なるとき1になります。特定のビットを反転する処理などに使われます。

画像などへの利用

ビット数は、画像で表現できる階調や色の数にも関係します。

1画素を8ビットで表すなら、

28=256

より256段階を表せます。

RGB画像で赤・緑・青をそれぞれ8ビットで表す場合は、1画素当たり24ビットとなり、

2563=16,777,216色

を表現できます。

このように、ビットは単に0と1を表す単位ではなく、ビット数によって表現できる情報の種類や範囲が決まります。特に、

nビット → 2n通り

という関係が、整数、画像、通信、記憶装置などを考える基本となります。

EXAMPLE

例題

ビット · EXAMPLEオリジナル

各ビットが0または1のいずれかをとる5ビットの固定長ビット列で表せる、異なる状態の総数を次から選べ。

  1. 0

    5通り

  2. 1

    32通り

  3. 2

    10通り

  4. 3

    25通り

解答・解説を確認

正解1.32通り

解説

nビットの各桁が独立に0または1を取るなら、組合せは2×…×2=2n通りです。5ビットでは32通りになります。

出典
オリジナル

PRACTICE

ビットの問題に挑戦