10進数と2進数の違い:なぜコンピュータ・半導体は「0と1」で計算するのか
なぜ「0と1」でデータを扱うのか
前回の記事では、コンピューターが情報を全て「0と1」の2進数に置き換え、半導体で計算や記憶をしていることを学びました。
情報をあえて「0と1」の2状態に置き換えるのは、半導体デバイスにとってそれが最も効率よく、かつ正確に計算・記憶ができる形だからです。では、そもそも「2進数・2進法」とはどのような仕組みなのでしょうか。
2進法とは:10進法との違い
2進法(Binary)とは、「0」と「1」の2種類の数字のみを使って数を表現する記数法のことです。
私たちが普段使う10進法は、0から9まで数えると桁が上がりますが、2進法は「2」になった瞬間に桁が上がります。10進法と2進法の対応は以下の通りです。
| 10進数(10進法) | 2進数(2進法) | |
|---|---|---|
| 使用する数字 | 0~9の10種類 | 0・1の2種類 |
| 方式・仕組み | 各桁が9を超えるたびに桁を1つずつ増やす方式 | 各桁が1を超えるたびに桁を1つずつ増やす方式 |
| 例 | 0, 1, 2, 3, 4, 5 | 0, 1, 10, 11, 100 |
例えば、10進法の「12」は、2進法では「1100」と表記されます。
10進法は「人間の指が10本あること」に由来した、人間にとって直感的で便利な手法です。対して2進法は、トランジスタの「ON/OFF(電気が流れる/流れない)」という2つの物理的な状態をそのまま数値として扱えるため、コンピューターにとって極めて都合が良い手法なのです。
2進数の計算:ルールは10進数と同じ
2進法になっても、計算の基本的な考え方は10進法と同じです。足し算を例に見てみましょう。
10進数では各桁が10になると1つ上の位に繰り上がりますが、2進数では各桁が2になると繰り上がります。繰り上がるタイミングが早いだけで、論理的な仕組みは変わりません。
2進数の単位:ビット(bit)とバイト(byte)
コンピュータが扱う情報の大きさを表すために、「ビット」と「バイト」という専用の単位が使われます。
ビット(bit)は、2進数の1桁(0または1)を表す情報の最小単位です。そして、8つのビットをひとまとめにしたものをバイト(byte)と呼びます。
例えば、アルファベットの「A」という文字は、アスキーコードという規格において「01000001」という8桁の2進数(=1バイト)のデータとして割り振られています。
- 1ビット(bit):2通りの状態(0 or 1)を表現。
- 1バイト(byte):8ビットのこと。28 = 256通りの状態を表現。
8ビットが1バイトと定義されたのは、初期のコンピュータにおいて英数字や記号(約100種類程度)を表現するのに、256通りあれば十分だったという歴史的経緯に基づいています。
ビットを増やす=半導体の「数」を増やすこと
1ビットは情報の最小単位ですが、これを物理的な視点で見ると、電荷を蓄える「1つの記憶素子(メモリセル)」や、演算を行うための「スイッチ回路」に対応しています。
もちろん、数個の素子を高速に使い回して計算することも可能ですが、現代のコンピュータがより「速く」、より「大量のデータ」を扱おうとすれば、必然的に物理的な半導体の数が必要になります。
- 8ビット(スイッチ8個分):256通り。簡単な英数字を扱えるレベル。
- 64ビット:約1,844京通り。現代のPCが一度に処理できる計算の幅。
- 数億〜数千億ビット:現代のCPUやGPU、メモリ。膨大なデータを同時に処理し、AIのような高度な演算を支える。
「より多くのデータを一瞬で処理するために、計算回路を並列に並べる」「データを消さずに保存するために、ビット数分の器(メモリセル)を用意する」。
この要求に応えるために、半導体を微細化し、1つのチップに詰め込めるビット(素子)の数を増やし続けてきた歴史こそが、コンピュータの進化そのものなのです。
では、この「0と1」の状態を実際に作り出している物理的なスイッチの正体とは何でしょうか。次回は、半導体デバイスの主役である「トランジスタ(MOSFET)」の仕組みに迫ります。
前の講座
次の講座




