
C言語入門|コンピュータは0と1でデータを表す
文字コードの前に知っておきたいこと
文字コードの話に入る前に、
まずは コンピュータが世界をどう見ているのか を理解しておきましょう。
私たち人間は、文字や数字、音や画像を直感的に扱っていますが、
コンピュータの世界はずっとシンプルです。
実はコンピュータが直接扱える値は、
0 と 1 の2種類だけなのです。
「え、そんな単純なもので、文字も画像も音も表せるの?」
そう思いますよね。でも、それがコンピュータのすごいところなんです。

なぜ0と1だけなのか
その理由は、コンピュータの最も基本的な部品である
集積回路(IC:Integrated Circuit) にあります。
ICは電気で動いていて、扱える状態は次の2つだけです。
| 電気の状態 | 意味 |
|---|---|
| ON | 電気が流れている。 |
| OFF | 電気が流れていない。 |
この2つの状態を、
ONを1、OFFを0 と対応づけて扱っています。
つまり、
| 電気信号 | 数値 |
|---|---|
| OFF | 0 |
| ON | 1 |
というわけで、
コンピュータの世界は0と1でできているのです。
ビットという最小単位
0または1のどちらかを表せるこの状態を、
1ビット(bit) と呼びます。
ビットは、コンピュータが扱えるデータの
最小単位です。
1ビットで表せる情報は、とても単純です。
| 例 | 状態 |
|---|---|
| 表 / 裏 | どちらか |
| 真 / 偽 | どちらか |
| ON / OFF | どちらか |
でも、このビットを組み合わせることで、
一気に表現力が広がります。
ビットが増えると何が起こるか
ビットを2つ使うと、次の4種類を表せます。
| 2ビット | 表せる状態 |
|---|---|
| 00 | 0 |
| 01 | 1 |
| 10 | 2 |
| 11 | 3 |
同じ考え方で、
| ビット数 | 表せる種類 |
|---|---|
| 1ビット | 2通り |
| 2ビット | 4通り |
| 3ビット | 8通り |
| 4ビット | 16通り |
というように、
ビットが1つ増えるたびに、表現できる数は倍になります。
一般化すると、
- nビット → 2のn乗 通りの状態
を表せる、というわけです。
バイトという単位
C言語でよく登場する char型 は、
文字を格納する型でしたね。
この char型の大きさは 1バイト です。
| 単位 | 大きさ |
|---|---|
| 1バイト | 8ビット |
8ビットあれば、
- 2の8乗 = 256通り
の状態を表せます。
つまり、1バイトで 256種類の値 を扱えるということです。
なぜ256種類で足りたのか
コンピュータは、もともと欧米で発展してきました。
欧米で使われる言語は主にアルファベットです。
| 種類 | 数 |
|---|---|
| アルファベット | 26文字 |
| 大文字+小文字 | 52文字 |
| 数字や記号 | 追加しても数十種類 |
これらを全部まとめても、
256種類あれば十分に収まります。
そのため、
- 文字は1バイト(8ビット)で表す。
- char型は1バイト
という設計が、長い間使われてきたのです。
「昔の家庭用ゲーム機が8ビットだった」
という話を聞いたことがある人もいるかもしれませんね。
10進数と2進数の違い
私たちが普段使っている数は 10進数 です。
10になったら桁が繰り上がります。
一方、コンピュータが使うのは 2進数 です。
2になったら桁が繰り上がります。
例を見てみましょう。
| 表記 | 意味 |
|---|---|
| 10進数の101 | 100×1 + 1×1 = 101 |
| 2進数の101 | 4×1 + 1×1 = 5 |
同じ「101」でも、
10進数と2進数ではまったく違う値になるのがポイントです。
0と1からすべてが始まる
ここまでをまとめると、
- コンピュータは電気のON/OFFで動く。
- ON/OFFを0と1に対応づけている。
- ビットを組み合わせることで数や文字を表現する。
- 文字コードも、数値として保存されている。
という流れになります。
次は、この 0と1の並びに意味を持たせた仕組み、
つまり 文字コード について学んでいきましょう。
