ビット(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  
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