ビットとバイトの違い
ビットは0か1かを表す2進数の1桁で、バイトは8ビットをひとまとめにしたものです。通信速度はビット(b)で、ファイルやメモリ、ドライブの容量はバイト(B)で表すので、両者を換算するときは必ず8を掛けるか8で割ります。
ビットとバイトとは
ビットはデジタル情報の最小単位で、2通りの値をとる2進数の1桁です。バイトは8ビットで、2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 256なので、256通りの値を表せます。
8ビットのバイトが標準になったのは、文字1つを表したり、メモリの番地を指定したりするのにちょうどよい大きさだったからです。初期のコンピューターには別の大きさのバイトもあったため、規格文書では厳密に8ビットを表すのに「オクテット」という言葉を使うことがあります。現在、目にするバイトはどこでも8ビットです。
1 B = 8 b 1 kB = 1,000 B = 8,000 b 1 MB = 1,000,000 B = 8,000,000 b
通信はビット、ストレージはバイトで数える理由
ネットワークの回線は、銅線や光ファイバー、電波の上で記号を1つずつ送ります。そのため回線の容量はビット毎秒で数えるのが自然で、この慣習はネットワークの世界全体に行き渡っています。イーサネットのポートは1 Gbpsや10 Gbps、USB 2.0は480 Mbps、家庭向けの光回線はMbpsやGbpsで表されます。
一方、ストレージとメモリはバイト単位で構成されています。ファイルはバイトの並びで、メモリの番地はバイトを指し、ファイルを保存・コピーするソフトはサイズや速度をkB、MB、GB、MB/sといったバイト単位で表示します。
どちらの慣習もそれぞれ理にかなっています。問題が起きるのは、Mbpsのプランと GBのファイルを比べるときです。MbpsとMB/sの違いが最もよくある混乱のひとつになっているのはこのためです。
接頭辞:10進数(kB、MB)と2進数(KiB、MiB)
キロ、メガ、ギガ、テラはSI接頭辞で、1,000のべき乗を意味します。しかしコンピューターのメモリは2のべき乗で作られるため、ソフトウェアでは長いあいだ同じ名前を1,024のべき乗の意味でも使ってきました。この曖昧さをなくすため、IECは2進数用の接頭辞として、キビ(Ki)、メビ(Mi)、ギビ(Gi)、テビ(Ti)を別に定めました。
| 10進数の単位 | バイト数 | 2進数の単位 | バイト数 | 2進数のほうが大きい割合 |
|---|---|---|---|---|
| 1 kB | 1,000 | 1 KiB | 1,024 | 2.4% |
| 1 MB | 1,000,000 | 1 MiB | 1,048,576 | 4.9% |
| 1 GB | 1,000,000,000 | 1 GiB | 1,073,741,824 | 7.4% |
| 1 TB | 1,000,000,000,000 | 1 TiB | 1,099,511,627,776 | 10.0% |
差は桁が上がるごとに広がるため、小さなファイルではほとんど気になりませんが、大容量のドライブでは大きな差になります。ネットワークのビットの接頭辞は常に10進数で、1 Mbpsはちょうど毎秒1,000,000ビットです。
1 TBのドライブが約931 GBと表示される理由
ドライブのメーカーは10進数の単位を使うので、1 TBのドライブには1,000,000,000,000バイトが入ります。一方、Windowsなど一部のOSは1,024のべき乗で数えながら「GB」と表示します。1,073,741,824で割ると931.3なので、何も欠けていないのにドライブは「931 GB」と表示されます。500 GBのドライブも同じ理由で約465.7と表示されます。
同じことはダウンロードでも起こります。あるプログラムで「1 GB」と表示されるファイルが実は1 GiB、つまり1,073,741,824バイト(8,589,934,592ビット)ということがあります。100 Mbpsなら、10進数の1ギガバイトの80秒ではなく約85.9秒かかります。このサイトの計算ツールは両者を区別しているので、GBかGiBかを明示的に選んでください。
単位を曖昧さなく書くには
| 記号 | 意味 | 補足 |
|---|---|---|
| b | ビット | 小文字のb |
| B | バイト(8ビット) | 大文字のB |
| kB | キロバイト、1,000バイト | 多くのアプリは「KB」と書き、1,024バイトの意味で使うこともある |
| KiB | キビバイト、1,024バイト | 2進数で、意味が一つに定まる |
| Mb / Mbps | メガビット / メガビット毎秒 | 通信速度 |
| MB / MB/s | メガバイト / メガバイト毎秒 | ファイルサイズやダウンロードアプリ |
実際の場面の大半は、2つの確認で片づきます。小文字のbが付いた値は、同じ数字に大文字のBが付いた値の8分の1です。そして、ドライブの容量や転送時間の見積もりなど数値が重要な場面では、比べる前に10進数か2進数かを確かめること。バイト毎秒→Mbps換算では、両方の単位系を並べて確認できます。
要点まとめ
- 1バイトは8ビット。小文字のbはビット、大文字のBはバイト。
- 通信は毎秒のビット数で、ファイル・メモリ・ドライブはバイト数で数える。
- kB・MB・GBは1,000のべき乗、KiB・MiB・GiBは1,024のべき乗。ギガの桁で7.4%の差がある。
- 2進数で数えるソフトでは、1 TBのドライブが約931「GB」と表示されるが、何も欠けていない。
よくある質問
1バイトが8ビットなのはなぜですか?
8ビットあれば256通りの値を表せ、文字1つを表すのに十分で、2のべき乗はコンピューターのハードウェアとも相性がよいからです。8ビットのバイトは数十年前に主流となり、いまでは事実上の世界標準です。
1キロバイトは1,000バイトですか、1,024バイトですか?
SIとIECのルールでは、1 kBは1,000バイト、1 KiBは1,024バイトです。いまでも「KB」を1,024バイトの意味で使うソフトがあるので、プログラムがどちらの意味で使っているかを確認してください。