コンピュータのデータ処理のしくみ
ワープロソフトで「A」という文字を入力すると、当たり前ですが画面上には「A」と表示されます。 しかし実際には、コンピュータ内部では「01000001」という数字が保存されているのです。
この数字は、8桁の2進数で表されます。
2進数とは、0と1の2つの数字だけで表現する方法です。
コンピュータ内部では、すべてのデータを2進数で表しているのです。
たとえば、普段私たちが使っている10進数の「65」は、2進数で「01000001」と表されます。
コンピュータがこの文字を表示する際には、文字コードという対応表を使います。
文字コードには、ある文字に対応する2進数の数値が割り当てられています。
たとえば、「A」の文字コードは「01000001」になります。
ワープロソフトが画面上に「A」を表示するとき、実際には文字コードが変換されて表示されているのです。
コンピュータが画像を表示するしくみ
コンピュータが画像を表示するしくみも数字が使われています。
画像のピクセルは、RGB値という数値で表されます。
RGB値は、赤、緑、青の各色の明るさを数字で表したものです。
たとえば、白色は「255, 255, 255」、黒色は「0, 0, 0」で表されます。
コンピュータは、カラーコードと呼ばれる対応表を使用して、RGB値を実際の色に変換しています。
なぜ0と1で処理しているのか?
コンピュータが0と1で処理している理由は、コンピュータ内部の電子回路が「オン」と「オフ」の2つの状態しか認識できないからです。
コンピュータ内部では、電子回路のスイッチが「オン」か「オフ」かに応じて、0と1が切り替わっています。
この2つの状態を使って情報を表現することで、コンピュータは高速かつ正確に情報を処理できるのです。
スイッチと2進数の関係
オンとオフを切り替えられるスイッチは、2進数の0と1を表すことができます。
スイッチが8個あれば256通り(2の8乗)の組み合わせを作ることができます。
See the Pen スイッチと2進数の関係 by MacLove (@maclove1) on CodePen.
必要なスイッチ数の計算
コンピュータ内部では、文字を数字に置き換えて処理するしくみがあることを説明しました。
そして、電気回路は電気が流れているか(1)、流れていないか(0)という状態を判別して処理していることも説明しました。
ここで、コンピュータ内部にいくつのスイッチが必要であるかを計算してみます。
スイッチとはオンかオフのように切り替えができるものです。
スイッチが1つあれば、0か1という2通り(2パターン)の状態を表すことができます。
スイッチ1の状態 | |
パターン1 | 0 |
パターン2 | 1 |
では、4つのパターンを表すために必要なスイッチの数はいくつでしょうか? 答えは2つです。
スイッチ1の状態 | スイッチ2の状態 | |
パターン1 | 0 | 0 |
パターン2 | 0 | 1 |
パターン3 | 1 | 0 |
パターン4 | 1 | 1 |
同じように、スイッチが3つあれば8通りのパターンが表現できます。
スイッチ1の状態 | スイッチ2の状態 | スイッチ3の状態 | |
パターン1 | 0 | 0 | 0 |
パターン2 | 0 | 0 | 1 |
パターン3 | 0 | 1 | 0 |
パターン4 | 0 | 1 | 1 |
パターン5 | 1 | 0 | 0 |
パターン6 | 1 | 0 | 1 |
パターン7 | 1 | 1 | 0 |
パターン8 | 1 | 1 | 1 |
つまり、必要なスイッチの数はパターンの数に応じて変化します。
スイッチ(処理装置)が増えるほど、処理できる情報量が増えるという単純な話です。
計算式
スイッチの数を求める計算式は以下のようになります。
スイッチの数 = log2(使用するパターンの数)
アルファベットを2進数で表すには何ビット(いくつのスイッチ)必要か?
コンピュータでアルファベットを表示するしくみを考えてみます。
アルファベットはA〜Zまで26種類あります。
つまり、26個のパターンがあるということです。
先ほどの計算式に当てはめてみます。
log2(26) ≒ 4.7…….. ≒ 5ビット
つまり、5つのスイッチが必要ということです。
ただし、文字コードの場合、実際には8ビット(1バイト)単位で扱われることが多いため、アルファベットを表現する場合でも1バイト(8つのスイッチ)が使われることが多いようです。
必要なスイッチの数を求める計算機
See the Pen 必要なビット数を求める計算機 by MacLove (@maclove1) on CodePen.