2進数とデータ — 0と1がすべての正体

概要 — まず全体をつかむ

このユニットは「0と1の仕組み」に集中します。データの種類やメディア・圧縮そのものは データの正体 を参照してください。

詳細 — 1段階ずつ追う

なぜ0と1なのか

コンピュータの中では、文字も写真も音楽も動画も、すべて0と1の並びで表されています。なぜわざわざ2種類だけなのでしょうか。

答えは「機械にとって一番間違えにくいから」です。コンピュータの中身は電気回路で、電気には「流れている/流れていない」というはっきりした2つの状態があります。もし10進数を使おうとすると電圧を10段階に見分ける必要があり、ノイズですぐ誤読します。オンかオフかの2択なら、まず間違えません。

半導体ウェハ
0と1の正体 — オン/オフを刻む半導体

この0か1かの1桁を ビット(bit) と呼びます。コンピュータの世界の最小単位です。

この部分をもっと深く(中級

コンピュータが2進数を使うのは、電気回路が「流れている/いない」の2状態を最も確実に区別できるからでした。この0か1かの1桁が ビット(bit) で、最小単位です。

ビットが8個集まると 1バイト(byte)。1バイトで2の8乗=256通りを表せます。ここで問題になるのが「2進数は桁が長くて人には読みにくい」こと。たとえば 11010110 は8桁もあります。

そこで登場するのが 16進数 です。4ビット=16進数1桁にちょうど対応するので、1バイトは16進数2桁でスッキリ書けます。

  • 2進 1101 → 16進 D(10進では13)
  • 2進 0110 → 16進 6
  • よって 11010110 → 16進 D6

色コード #FF0000(赤)やメモリのアドレス表示に16進が使われるのは、この「4ビット=1桁」の相性の良さが理由です。

ビットを束ねると何でも表せる

1ビットでは「はい/いいえ」しか表せませんが、束ねると表現力が爆発します。

  • 2ビット → 4通り(00, 01, 10, 11)
  • 3ビット → 8通り
  • 8ビット → 256通り … これを 1バイト(byte) と呼びます

たとえば半角の「A」には65番、「B」には66番…と番号を割り当てるルール(文字コード)を決めておけば、文字は数値になり、数値は2進数になり、電気信号として扱えます。

アニメーション『ビット=スイッチのオン/オフ』を開く
ビット = スイッチのオン / オフ1つのスイッチ = 1ビット(bit)ON = 1OFF = 0スイッチ8個 = 1バイト(byte)= 8ビット012816403201618040201各スイッチの重み(128〜1)。ONの重みを足すと数になる010010008ビットの並び(1バイト)数として読むと … 64 + 8 =72文字コードで読むと … 文字Hすべては0と1の並び。「読み方のルール」で意味が決まる

写真も同じです。画像を細かいマス目(画素)に分け、各マスの色を「赤・緑・青の強さ」の数値で記録する。音楽なら、音の波の高さを1秒間に何万回も測って数値の列にする。変換ルールこそ違え、行き着く先はぜんぶ0と1。だから1本のケーブルで文字も動画も送れるのです。

この部分をもっと深く(中級

同じ0と1の並びでも、読み方のルールを変えると、数にも文字にも色にもなります。ルールごとに見ていきます。

数(整数)。8ビットで0〜255を表せますが、マイナスも扱いたい。そこで先頭ビットを符号に使い、負の数は 2の補数 という方式で表します。ざっくり言えば「桁を全部反転して1を足す」とマイナスになる仕組みで、これなら引き算を足し算の回路で処理できます。8ビットの符号つき整数なら、表せる範囲は -128〜127 になります。

文字。ここは2段階に分かれます。

  • 文字集合(例:Unicode) — 「あ」は U+3042、「A」は U+0041、と文字に番号を割り当てる台帳
  • 符号化方式(例:UTF-8) — その番号を実際のバイト列に変換するルール
アニメーション『ビット=スイッチのオン/オフ』を開く
ビット = スイッチのオン / オフ1つのスイッチ = 1ビット(bit)ON = 1OFF = 0スイッチ8個 = 1バイト(byte)= 8ビット012816403201618040201各スイッチの重み(128〜1)。ONの重みを足すと数になる010010008ビットの並び(1バイト)数として読むと … 64 + 8 =72文字コードで読むと … 文字Hすべては0と1の並び。「読み方のルール」で意味が決まる

UTF-8は、英数字は1バイト、日本語などは3バイト前後、と文字によってバイト数を変える可変長方式です。だから英語中心のデータは小さく、世界中の文字も表せます。「文字集合=どの文字に何番」「符号化方式=その番号をどうバイトにするか」と役割が分かれている点が要です。

色や音も同じで、画素の色を赤・緑・青の数値に、音の波の高さを数値の列にする。変換ルールが違うだけで、行き着く先はぜんぶ0と1です。

単位の感覚をつかむ

  • 1 KB(キロバイト)≒ 1,000 バイト … 短いメール1通ぶん
  • 1 MB(メガバイト)≒ 1,000 KB … 写真1枚、曲1分ぶん
  • 1 GB(ギガバイト)≒ 1,000 MB … 映画1本(標準画質)
  • 1 TB(テラバイト)≒ 1,000 GB … スマホ写真なら数十万枚

「ギガが減る」の「ギガ」はこの単位のことで、正確には通信で送ったデータ量を指しています。0と1を何個送ったか、という話だったわけです。

この部分をもっと深く(中級

データ量の単位は、10進の1,000区切りと、2進の1,024区切りの2種類があります。

  • 厳密には 1 KiB(キビバイト)= 2の10乗 = 1,024 バイト、1 MiB = 1,024 KiB、1 GiB = 1,024 MiB
  • 一方 1 KB = 1,000 バイト とする10進表記も広く使われる

「1,000か1,024か」で微妙にズレるのはこのためです。ストレージの容量表示(10進)とOSの表示(2進)が食い違って見えるのも、この単位の違いが原因です。

  • 1 KB ≒ 短いメール1通ぶん
  • 1 MB ≒ 写真1枚、曲1分ぶん
  • 1 GB ≒ 映画1本(標準画質)
  • 1 TB ≒ スマホ写真なら数十万枚

関連する知識

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. コンピュータが2進数(0と1)を使う最大の理由はどれ?

2. 「写真も音楽も文字も、コンピュータの中では同じ」と言えるのはなぜ?

3. 1バイト(byte)は何ビット(bit)?

4. 3ビットで表せる組み合わせは何通り?

5. 半角の「A」に65番、と文字に番号を割り当てておく取り決めを何と呼ぶ?

6. 本文の目安で「1 GB」はおよそ何にあたる?

7. 写真を細かいマス目に分けたとき、色を持つ1つ1つのマスを何と呼ぶ?

8. 1バイト(8ビット)で表せるのは何通りか、半角数字で答えてください。