archive

ビット(bit)とは?ビットによる文字表現や画像、音のデジタル化を解説


ビット(bit)とは何か説明する。

bitの略語元となっている、binary digit (2進数)に関しても合わせて解説。

ASCIIコードによる文字表現や画像、音がどのようにビット表現され、デジタル化されているかも合わせて説明する。

ビット(bit)とは?

ビットとは、情報の最小単位のことを指す。

また、binary digit (2進数)を略した言葉でもある。

そもそも「情報」とは?

情報の最小単位というが、そもそも「情報」とはなんだろうか?

「情報はなぜビットなのか」という本で、情報理論を確立した米国のクロード・シャノンによる情報の定義が紹介されている。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説

シャノンによる情報の定義を簡単に説明すると「変化するパターンの中から選択できるもの」となります。

矢沢 久雄. 情報はなぜビットなのか 知っておきたいコンピュータと情報処理の基礎知識 (Japanese Edition) (Kindle Locations 243-244). Kindle Edition.

photo: Wikipedia - Shannon, Claude — Author: Jacobs, Konrad — Source: Konrad Jacobs, Erlangen (CC BY-SA 2.0 de)

「変化するパターンの中から選択できるもの」とはなんだろう?

本で取り上げている情報の例として、天気は晴れ、曇り、雨、雪の4通りに変化する。

道路の信号は青、黄色、赤の3通りに変化する。

といったように変化するパターンが情報となる。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー情報とは何か

最小単位とは?

ではパターンの最小単位はいくつか?

YES・NO、左・右といった、2通りになる。

なので二通りの変化が「情報の最小単位」と言える。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー情報の最小単位とは何か

どのようにコンピュータに適用した?

ではどのようにこのビットの概念がコンピュータに適用したのか?

それはコンピュータの作りに関係する。

コンピュータは電子回路の集まりであり、それぞれの回路に電流が流れているか流れていないかのみ認識することができる。

つまり

  • 電流が流れている=1
  • 電流が流れていない=0

というふうに置き換えることで、ビット(情報の最小単位)を当てはめることが可能になった。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー情報の最小単位とは何か

これにより、電線一本につき1ビットの情報を伝えられるようになった。

この仕組みがたくさん集まった場所がCPU (Central Processing Unit)であり、パソコンを動かすのに中心的な役割を果たしている。

CPUについては詳しくは下記に書いた。

[st-card myclass="" id=4737 label="" pc_height="" name="" bgcolor="" color="" fontawesome="" readmore=“on”]

情報の基本単位はバイト(byte)

ビットは「情報の最小単位」であると見てきたが、情報の基本単位はバイトとなる。

1バイト=8ビットとなる。

基本単位とは?

8ビットで一つの情報を表すことができるため、1バイトは基本単位と言われる。

例えば、二進数「00000000」→10進数「0」といった形で、8桁の2進数で人間がよく使う10進数や文字に変換することができる。

下記は10進数、2進数、文字の対応表の一部になる。これらのコード表をASCIIコード表(アスキーコード)という。

2進数10進数文字
0100000165A
0100001066B
0100001167C

この文章の一番下にアスキーコードをまとめた。

なぜ1バイトは8ビットなの?

Qiitaの「1バイトが8bitに定まったのは2008年」より参照する。

処理する文字が英語の大文字小文字や特殊記号など増えてくるのに従って、6ビットでは足りなくなってきました。英語大文字+英語小文字+数字を表現するだけで26+26+10=62パターン必要です。62パターンを表現するには、6ビット必要となります。さらに、プラスやマイナス等の特殊記号を表現させるために、最低でも7ビット必要となります。ASCII文字コード

7bitで1バイトでも良いのですが、通信用のパリティビットを表現させたりするために、プラス1ビットを追加した8ビットが1バイトとなりました。

1バイトが8bitに定まったのは2008年

つまり

  1. 英語大文字+英語小文字+数字を一通りビットで表現するためには、最低でも7ビットのセットは必要だった
  2. パリティビット(データを通信した時にデータがしっかり送られたか確認するための手段)の手段を取るため、もう1ビットを追加した

この二つによって、1ビット=8ビットになったと言われる。

二進数とは?

ビットはbinary digit (2進数)の略だと書いたが、2進数とはなにか?

2進数とは「0」と「1」の2つの数字のみが使われ、1の次に位が上がる数字の表現方法。

馴染み深い10進数は「0」から「9」の数字を使い、10の時に位が上がる。

下記に2進数と10進数を比較する。

2進数10進数
00
11
102
113
1004
1015
1106
1117
10008
10019
101010
101111
110012
110113
111014
111115
1000016
1000117
1001018
1001119
1010020

このようにコンピューターでは普段使っている10進数以外のn進数を利用することで、計算を行っている。

こういったn進数は離散数学の分野で扱われる。

[st-card myclass="" id=4806 label="" pc_height="" name="" bgcolor="" color="" fontawesome="" readmore=“on”]

ビットパターンの情報表現

ここからはビットによってできる情報表現について解説していく。

ビットによってテキストや画像、音声まで表現することができる。

テキストの表現

8ビットで文字を表現することができたが、繋げることでメッセージを作ることができる。

例えば「Japan」をビットパターンで表現すると、下記のようになる。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ーテキストの表現

色の表現

RGBと呼ばれる色コードはビットパターンが使われている。

RGBはRed, Green, Blueの略で、それぞれの赤・緑・青の濃度を00000000(0) ~ 11111111(255)の8ビットで表している。

  • rgb(0, 0, 0) 黒
  • rgb(255, 0, 0) 赤
  • rgb(0, 255, 0) 緑
  • rgb(0, 0, 255) 青
  • rgb(255, 255, 255) 白

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ーRGBによる色の表現

画像の表現

デジタル画像は、一つ一つの点(ピクセル)が集まったものということができる。

一つ一つのピクセルに色の情報がつくことで、デジタル画像として表現することができる。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー画像の表現

音声の表現

音声はコード化することで、アナログからデジタルに変換することができる。

まずはマイクによって音(空気の振動)を電気のアナログ信号に変換する。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー音の表現

アナログからデジタル化するために、アナログ信号を一定間隔で区切る。(サンプリングという)

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー音の表現

サンプリングした波形に対して、数値に変換する。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー音の表現

数値化した数字をさらに2進数に変換する。

ビット(bit)とは何かビットによる文字表現や画像、音のデジタル化を解説ー音の表現

このプロセスによって、音をビットで表すことができる。

コンピュータの全体像

コンピュータの全体像を知ると、よりビットについての理解が深まる。

こちらにコンピューターサイエンスの全体像についてまとめた。

[st-card myclass="" id=4587 label="" pc_height="" name="" bgcolor="" color="" fontawesome="" readmore=“on”]

ASCIIコード一覧

ASCIIコードは、American Standards Association(米国国家規格協会)によって制定された文字コード。

数字と文字の対応表のようなもの。

10進数2進数文字省略なし
000000000NULnull
100000001SOHstart of heading
200000010STXstart of text
300000011ETXend of text
400000100EOTend of transmission
500000101ENQenquiry
600000110ACKacknowledge
700000111BELbell
800001000BSbackspace
900001001TABhorizontal tab
1000001010LFNL line feed、new line
1100001011VTvertical tab
1200001100FFNP form feed、new page
1300001101CRcarriage return
1400001110SOshift out
1500001111SIshift in
1600010000DLEdata link escape
1700010001DC1device control 1
1800010010DC2device control 2
1900010011DC3device control 3
2000010100DC4device control 4
2100010101NAKnegative acknowledge
2200010110SYNsynchronous idle
2300010111ETBend of trans.block
2400011000CANcancel
2500011001EMend of medium
2600011010SUBsubstitute
2700011011ESCescape
2800011100FSfile separator
2900011101GSgroup separator
3000011110RSrecord separator
3100011111USunit separator
3200100000Space
3300100001!
3400100010
3500100011#
3600100100$
3700100101%
3800100110&
3900100111
4000101000(
4100101001)
4200101010*****
4300101011+
4400101100,
4500101101-
4600101110.
4700101111/
48001100000
49001100011
50001100102
51001100113
52001101004
53001101015
54001101106
55001101117
56001110008
57001110019
5800111010:
5900111011;
6000111100<
6100111101=
6200111110>
6300111111?
6401000000@
6501000001A
6601000010B
6701000011C
6801000100D
6901000101E
7001000110F
7101000111G
7201001000H
7301001001I
7401001010J
7501001011K
7601001100L
7701001101M
7801001110N
7901001111O
8001010000P
8101010001Q
8201010010R
8301010011S
8401010100T
8501010101U
8601010110V
8701010111W
8801011000X
8901011001Y
9001011010Z
9101011011[
9201011100**
9301011101]
9401011110^
9501011111_
9601100000`
9701100001a
9801100010b
9901100011c
10001100100d
10101100101e
10201100110f
10301100111g
10401101000h
10501101001i
10601101010j
10701101011k
10801101100l
10901101101m
11001101110n
11101101111o
11201110000p
11301110001q
11401110010r
11501110011s
11601110100t
11701110101u
11801110110v
11901110111w
12001111000x
12101111001y
12201111010z
12301111011{
12401111100|
12501111101}
12601111110~
12701111111DEL
12810000000
12910000001
13010000010
13110000011
13210000100
13310000101
13410000110
13510000111
13610001000
13710001001
13810001010
13910001011
14010001100
14110001101
14210001110
14310001111
14410010000
14510010001
14610010010
14710010011
14810010100
14910010101
15010010110
15110010111
15210011000
15310011001
15410011010
15510011011
15610011100
15710011101
15810011110
15910011111
16010100000
16110100001
16210100010
16310100011
16410100100
16510100101
16610100110
16710100111
16810101000
16910101001
17010101010
17110101011
17210101100
17310101101
17410101110
17510101111
17610110000-
17710110001
17810110010
17910110011
18010110100
18110110101
18210110110
18310110111
18410111000
18510111001
18610111010
18710111011
18810111100
18910111101
19010111110
19110111111ソ
19211000000
19311000001チong>
19411000010
19511000011
19611000100
19711000101
19811000110
19911000111
20011001000
20111001001
20211001010
20311001011
20411001100
20511001101
20611001110
20711001111
20811010000
20911010001
21011010010
21111010011
21211010100
21311010101
21411010110
21511010111
21611011000
21711011001
21811011010
21911011011
22011011100
22111011101
22211011110
22311011111
22411100000
22511100001
22611100010
22711100011
22811100100
22911100101
23011100110
23111100111
23211101000
23311101001
23411101010
23511101011
23611101100
23711101101
23811101110
23911101111
24011110000
24111110001
24211110010
24311110011
24411110100
24511110101
24611110110
24711110111
24811111000
24911111001
25011111010
25111111011
25211111100
25311111101
25411111110
25511111111