コンピューターはなぜ0と1を使う?二進数と二つの状態の仕組み

広告(PR)を含みます。

30秒でわかる答え

コンピューターが0と1を使うのは、電気のオンとオフのような二つの状態を安定して区別しやすいからです。二つの状態をたくさん組み合わせ、読むための決まりごとに沿って文字・画像・音などを表します。

二つのスイッチで、何通り作れる?

消灯を0、点灯を1とすると、二つの並びは 00・01・10・11の4通りです。文字や色を表すには、この並びをどう読むかの約束も必要です。

TERM PRIMER

先に知っておく言葉

データ
コンピューターが扱う情報。文字、画像、音、動画、Webサイトもデータとして扱われます。
0と1
コンピューターが情報を表すための基本の形。オン/オフの組み合わせで情報を表します。
ビット
コンピューターが扱う情報の最小単位。0か1のどちらかを表します。
バイト
データ量を表す単位。多くの場合、8ビットを1バイトとして扱います。

ユイ

文字も画像も動画も、最後は0と1で扱われると聞きました。どうして二つだけなんですか?

ピコ

コンピューターにとって、二つの状態は安定して区別しやすいからだよ

イト

オンとオフみたいに、はっきり分けられるから?

人に見える画面では、文字、写真、音楽、動画、Webページとして表示されます。けれど画面のむこう側では、それらを保存したり、計算したり、通信で送ったりするために、扱いやすい形に変えています。その土台にあるのが、0と1の組み合わせです。

ここでいう0と1は、機械の中に数字の形が並んでいるという意味ではありません。たとえば回路では、電圧が低い範囲と高い範囲を、0と1に対応させて扱います。物理的な信号と、それを読む記号を分けて考えます。

第95話「コンピューターはなぜ二進数を使う?」では、スイッチ部屋で0と1の状態が並ぶ様子を見ます。この先では、その光景を、ビット、文字、画像、ファイルサイズの理解へつなげます。

二進数とは?0と1を組み合わせて情報を表す

二進数は、0と1の二つの数字を使い、二つ分で次の桁へ繰り上がる数の表し方です。日常の十進数では0から9まで使って繰り上がりますが、二進数では0、1、10、11と進みます。これは、十進数の0、1、2、3に当たります。

最初の二つのスイッチでも、00・01・10・11の四通りを試せます。スイッチをもう一つ足すと、それぞれの並びに「消灯の場合」と「点灯の場合」ができ、組み合わせは倍になります。

たとえでいうなら、机の上に小さなスイッチを並べるようなものです。スイッチ一つなら、オフかオンの二通りです。スイッチが二つ、三つ、四つと増えると、表せる組み合わせも増えていきます。

スイッチの数表せる組み合わせ
1個2通り
2個4通り
3個8通り
4個16通り
8個256通り

一個では二通りでも、並べれば表せる種類が増えます。では、最初から一個に十段階の状態を持たせず、二つに分けるのはなぜでしょうか。

ユイとイトとピコが、二つの状態に切り替わるスイッチ列と広がる光の組み合わせを見ている
二つの状態の組み合わせを増やすと、多くの数や情報を表す材料になります。

二進数が使われる場面と二つの状態が扱いやすい理由

コンピューターの中では、情報を電気的な状態や記録の状態として扱います。そこで大事なのは、状態を読み間違えにくいことです。

二つの状態なら、低い状態と高い状態、オフとオン、ない状態とある状態のように分けやすくなります。状態の種類を増やすと一度に表せる量は増えますが、その分だけ区別も細かくなります。小さな揺れやノイズがある環境では、二つの状態に分ける方が安定して扱いやすい場合があります。

電圧で表す回路では、「低い範囲を0、高い範囲を1」と読み、間にはどちらとも決めない領域を設けます。さらに、送る側と受け取る側の基準に余裕を持たせ、小さな揺れがあっても読み違えにくくします。二つに分けさえすれば、どんなノイズにも強いという意味ではありません。

マコト

一つひとつを単純にして、たくさん並べることで複雑な情報を扱うんだね

ユイ

二つだけだから少ないのではなく、組み合わせで増やしていくんですね

ランプの明るさを10段階にすれば、一個で多くの合図を伝えられそうです。でも、周囲の明るさや小さな変動があっても、似た段階を正しく見分ける必要があります。二つの状態に分ける考え方は、そうした変動があっても区別しやすくするために役立ちます。

0と1は状態を書き表す記号で、いつでも正確に0ボルトと1ボルトという意味ではありません。電子機器のすべてが、例外なく二つの物理状態しか使わないという説明でもありません。ここからは、その区別を情報の単位として数えてみます。

ビットとの関係

0か1のどちらか一つを表す情報の最小単位を、ビットと呼びます。

ビット一つだけでは、表せることは多くありません。けれど、ビットがたくさん並ぶと、文字、色、音、動画の一部などを表す材料になります。単位の詳しい意味はビットとは、8ビットをまとめる単位はバイトとはで確認できます。

ここで大切なのは、0と1の並びだけでは意味が決まらないことです。どのルールで読むかによって、同じようなビットの並びが文字、色、音、数値などとして扱われます。文字には文字コード、画像には画像形式、音声には音声形式のような約束があります。

たとえば 01000001 という8ビットを、符号なしの二進数として読むと65です。同じ列をUTF-8の文字データとして読むと、文字の「A」になります。並びが変わったのではなく、数値として読むか、文字として読むかという扱いが変わっています。

では、「A」とその番号を結びつける決まりは、どこにあるのでしょうか。

文字や画像はどう0と1につながるか

文字データでは、字の輪郭を一文字ずつ写真にして保存するのではなく、どの文字かを表す番号を使います。写真などの画像では、画素の色を数値で扱います。同じ0と1でも、記録する対象と読む手順が違います。

たとえばUnicodeでは、文字「A」に65という番号が対応します。UTF-8などの方式でその番号をバイト列にし、読む側も同じ方式で解釈します。画像では、画素の色や圧縮の情報を、画像形式の約束に沿って保存・読み取りします。

人に見えるもの0と1につながる考え方
文字文字ごとの番号を決まりに沿って読む
画像色の点や圧縮のルールで扱う
音空気の揺れを一定間隔で数値化する
動画画像の連続、音、時間情報をまとめる

「ぜんぶ0と1」と言うと少し雑に聞こえるかもしれません。実際には、0と1の並びに加えて、それをどう読むかの形式やルールがあります。0と1は土台であり、形式は読むための説明書です。

マコトとユイとピコが、スイッチ列から画像パネルや音の波などのカードへ分かれる光を確認している
0と1の並びは、読むための形式やルールによって文字、画像、音、動画などとして扱われます。

写真や文字に0と1が見えないのはなぜ?

普段の画面で、0と1そのものを見る場面は多くありません。それでも、関係する手がかりはあります。

  • ファイルサイズのKB、MB、GB
  • 通信速度のMbps、Gbps
  • 画像や動画の画質設定
  • 音声や動画のビットレート
  • 32bit版、64bit版のアプリやOS
  • 暗号化で出てくる鍵の長さ

これらは全部同じ意味ではありません。容量、速度、品質、処理できる範囲、セキュリティなど、文脈によって話が変わります。ただ、どれも情報をどのくらいの量や細かさで扱うかに関係しています。

困ったときは、「これは速度の話か」「容量の話か」「品質の話か」「処理の範囲の話か」を分けて確認します。画面のむこう側にある0と1の仕組みを、身近な表示に戻して読むことができます。

よくある誤解

二進数で混同しやすいのは、「0と1だけなら、複雑なものは表せないのでは」という考え方です。

一つだけなら二通りです。でも、たくさん並べると組み合わせは大きく増えます。文字、写真、音、動画は、一つの0や1で表すのではなく、たくさんの0と1の並びと、それを読むための決まりごとで扱います。

もう一つの誤解は、「コンピューターの中に文字としての0と1がそのまま詰まっている」という見方です。実際には、電気的な状態や記録状態などを、人が説明しやすいように0と1として表しています。たとえとしてはスイッチやランプが分かりやすいですが、答えそのものは「二つの状態を区別して扱う」という考え方です。

最後に、二進数を理解するために計算問題をたくさん解く必要があるとは限りません。Webやデータの入口では、「なぜ二つの状態を使うのか」「ビットが集まると何ができるか」「形式が意味を与えること」を押さえるだけでも、次の記事へ進みやすくなります。

図で見る0と1からデータへの流れ

0と1は、そのまま見える完成品ではなく、人に見える情報に戻すための材料です。流れにすると、次のようになります。

  1. 二つの状態を区別する
  2. 0または1として扱う
  3. ビットが並ぶ
  4. 決まりごとに沿って読む
  5. 文字・画像・音・動画として表示される

この流れを見ると、「0と1だけで全部が見える」のではなく、0と1の並びを読むためのルールがあって、はじめて人に見える形へ戻ることがわかります。

自分の言葉で説明してみよう

次の三つを、自分の言葉で説明してみましょう。

  1. 0と1を使う理由:__________
  2. ビットとは:__________
  3. 文字や画像に戻すために必要なもの:__________

答えの例:

  • 0と1を使う理由: 二つの状態を安定して区別しやすいから
  • ビットとは: 0か1のどちらか一つを表す情報の最小単位
  • 文字や画像に戻すために必要なもの: 文字コードや画像形式など、どう読むかの決まりごと

ミニクイズと次の0と1ルート

Q1. コンピューターが0と1を使う主な理由は?

電気のオンとオフのような二つの状態を、安定して区別しやすいからです。

Q2. 0か1のどちらか一つを表す単位は何ですか?

ビットです。ビットがたくさん並ぶと、データを表す材料になります。

Q3. 0と1の並びだけで、文字や画像の意味は決まりますか?

並びだけでは意味が決まらない場合があります。文字コードや画像形式など、どう読むかの決まりごとが必要です。

二つの状態を見分け、並びを増やすことで、多くの情報を表せます。ただ、同じ並びでも、読む決まりがなければ文字には戻せません。次は文字コードとはで、「A」や「あ」と番号・バイト列をどう結びつけるのかを見てみましょう。

この記事について

LAB WHITEBOARD

自分の言葉で説明してみよう

「コンピューターが二進数を使う理由、0と1がビットとして扱われること、文字や画像などのデータへつながる流れを説明できるようになる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。