コンピュータは2進数
コンピュータのデータは1と0の2進数で記されています。これをデジタル化と呼びます。文字もすべて2進数であらわされており、Aは100001といったように表現されます。
2進数の仕組み
2進数では1の次が10となり、1と0だけですべての数を表します。10進数の数字を2進数で表すと次のようになります。
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
ビットとバイト
コンピュータ内部で扱われる1と0の情報はビット(bit)と呼ばれます。1ビットとは、その値が1か0かの状態です。
また、8ビットをまとめたデータをバイト(byte)と呼びます。1バイトは1と0の2通りの1ビットが8個集まったものなので、2の8乗、つまり256通りの状態を表すことができます。
英数字は1バイトですべての文字を表現することができますが、漢字を含む日本語は7000文字存在するため、2バイトで表現します。2バイトでは、2の16乗、つまり6万5536種類の状態を表すことができます。7000文字よりもだいぶ多めです。
K(キロ)・M(メガ)・G(ギガ)バイト
バイトは大きな数字になるため、省略して書くために、K、M、Gなどの記号を使います。日常生活においては次のように示します。
- 1K=1000
- 1M=1,000,000
- 1G=1,000,000,000
しかし、コンピュータ上では1Kバイトを1024バイトと表現します。これは、コンピュータは2進数で動くため、1000になるべく近い値ということで、2の10乗である1024との値が当てられています。
つまり、実際のバイトの値は次のようになります。
- 1Kバイト=1024バイト
- 1Mバイト=1024Kバイト=1024×1024バイト=1,048,576バイト
- 1Gバイト=1024Mバイト=1024×1024×1024バイト=1,073,741,824バイト
データはどこに保存されている?
データを保存する場所をハードディスクと呼びます。ハードディスクはプラッタと呼ばれる円盤が重なっており、磁気ヘッドと呼ばれる磁石によって磁化を変えることで1と0のデータを記します。
一方、一時的にデータを保存するメモリでは、コンデンサと呼ばれる電気を蓄えるものが並んでおり、電気が蓄えられているかどうかで1と0を記録します。電源を切ると、蓄えられていた電気が解放されるため、データは消滅します。
コンピュータ内部で使われる信号
コンピュータはハードディスクに保存されているデータをメモリに渡したりする時は、1と0の状態を電圧によって表現します。1であれば電圧が5Vとなり、0であれば電圧を下げます。このように電圧の高低で作られる信号をNRZ信号と呼びます。
ネットワークの信号
LANケーブルでは銅線が使われていますが、コンピュータ内部と同様に電圧による高低で通信を行います。しかし、ネットワークの通信の場合、ただ電圧を0にするだけでは、ケーブルに電気が流れないため、0の信号だということを相手は判別できません。そのため、ただ電圧を下げるのではなく、交流の電源を利用して、マイナスの電圧を使って信号を作ります。
しかし、マイナスやプラスが連続すると、相手側は1や0がどれくらい続いたのか判別することができません。そのため、イーサネット(Ethernet)と呼ばれる規格では、プラスからマイナスに変わったら0、マイナスからプラスに変わったら1としています。つまり、1が連続していても、一度マイナスに落ちてからプラスに上がるという波形が連続することとなります。
符号化
電気信号の状態に1と0を割り当てていくことを符号化と呼びます。上述した符号化はマンチェスター符号と呼ばれます。
電気信号はどこで作られる?
コンピュータのメモリ(コンデンサーの集合体)から送られた0と1のデータはLANカードによって電気信号に変えられます。LANカードはコンピュータネットワーク内でコンピュータ間の通信を行うために使用されるハードウェアの1つです。
LANカード内部にはバッファと呼ばれる小型メモリーが搭載されており、コンピュータから渡された0と1のデータを格納します。さらに、イーサネットコントローラと呼ばれるチップが、符号化の処理を行い、電気信号を作り出すPHYチップに渡します。PHYチップは電圧を発生させてケーブルにデータを送り出します。