
2026/02/04 1:53
**答え** 国際単位系(SI)では、*キロバイト*(**kB**)は **正確に 1 000 バイト** と定義されています。 しかし、ほとんどのコンピュータ関連の文脈では「キロバイト」という用語が 2¹⁰ バイト=**1 024 バイト** を指すことが多いです。これは二進プレフィックス(kibi‑, kibibyte – KiB)に由来しますが、歴史的に人々はそれをキロバイトと呼び続けてきました。 | プレフィックス | シンボル | バイト数 | |----------------|----------|-----------| | キロ (kilo) | k | 1 000 | | キビ (kibi) | ki | 1 024 | **結論** - **SI 定義:** 1 kB = 1 000 バイト。 - **一般的なコンピューティングの用法:** 多くの人(または一部のオペレーティングシステム)は、実際には 1 KiB(1 024 バイト)を「キロバイト」と呼びますが、正しい二進表現は *kibibyte* (KiB) です。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
この記事では、広告で提示される容量と実際に報告される容量の見かけ上の不一致が、マーケティング用に十進(10進)単位を使用し、オペレーティングシステム用に二進(2進)単位を使用していることから生じていると説明しています。メーカーはドライブをキロバイト、メガバイト、ギガバイトなどでラベル付けしますが、ここでは 1 KB = 1000 バイトです。一方、システムはサイズをキビバイト、メビバイト、ギビバイトなどで報告し、1 KiB = 1024 バイトと定義しています。
二進単位と十進単位の比率が2のべき乗ごとに増加するため、パーセンテージ差は拡大します:
- キロ:2.4 %
- メガ:約4.8 %
- ギガ:約7.3 %
- テラ:約10 %
- ペタ:約12.6 %
- エクサ:約15.3 %
- ゼッタ:約18.1 %
- ヨタ:約20.9 %
- ロナ:約23.8 %
- クエッタ:約26.8 %。
したがって、テラバイトでも約10 %の差が生じ、クエッタバイトでは二進値が十進値を25 %以上上回ります。記事は実例として「Windows が 500‑GB ドライブで『Missing 70 GB』と報告する」ケースを挙げ、RAM ベンダーがまだ JEDEC の二進基準を使用している点にも触れています。
国際電気標準会議(IEC)は、KiB、MiB、GiB、TiB、PiB、EiB、ZiB、YiB、RiB、および QiB というプレフィックスを導入し、二進のべき乗と SI の十進プレフィックスを明確に区別しました。ストレージ容量が増大するにつれて、この区分はユーザー、メーカー、ソフトウェア開発者にとってますます重要になり、混乱を避け透明な仕様を保証するために IEC の二進プレフィックスの採用が求められます。
(掲載 2026年11月01日;更新 2026年01月15日。)
本文
発表日: 2026年11月01日 更新日: 2026年1月15日
見解
コンピュータメモリについて語るとき、通常「キロバイト=1024 バイト」「メガバイト=1024 キロバイト」といった説明を耳にします。
しかし、実際には必ずしもそうとは限らず、1 キロバイトは 1000 バイトである場合もあります。そしてそれこそがもっと合理的なのです。
目次
- なぜ「1 キロバイト=1024 バイト」と言われるのか
- なぜ 1000 のほうがより妥当か
- 標準単位とは何か
- 結論
なぜ「1 キロバイト=1024 バイト」と言われるのか?
コンピュータは二進数(基底 2)で動作するため、メモリはバイナリでアドレス指定されます。
アドレスや RAM スティックを 2 のべき乗以外の値に合わせて設計するのは非現実的です。そのため、2 のべき乗から 1024(= (2^{10}))を基準とし、1000 に近い(誤差 2.4 %)ことと、あまり大きくないという理由で採用されました。実際の値は次のようになります。
| 単位 | 値 |
|---|---|
| キロ (k) | ≈ 1024 |
| メガ (M) | ≈ 1 048 576 |
| ギガ (G) | ≈ 1 073 741 824 |
なぜ 1000 のほうがより妥当か?
二進数の「キロ・メガ・ギガ」は十進数に近いものの、単位が大きくなるほど誤差は増加します。下表でその相対的な差を示します。
| 単位 | 十進値 | 二進値 | 相対差 |
|---|---|---|---|
| キロ | 1 000 | 1 024 | 2.4 % |
| メガ | 1 000 000 | 1 048 576 | ≈ 4.8 % |
| ギガ | 1 000 000 000 | 1 073 741 824 | ≈ 7.3 % |
| テラ | (10^{12}) | 1 099 511 627 776 | ≈ 10 % |
| ペタ | (10^{15}) | ≈ 1.126 × (10^{15}) | ≈ 12.6 % |
| エクサ | (10^{18}) | ≈ 1.153 × (10^{18}) | ≈ 15.3 % |
| ゼタ | (10^{21}) | ≈ 1.181 × (10^{21}) | ≈ 18.1 % |
| ヨタ | (10^{24}) | ≈ 1.209 × (10^{24}) | ≈ 20.9 % |
| ロンナ | (10^{27}) | ≈ 1.238 × (10^{27}) | ≈ 23.8 % |
| クエッタ | (10^{30}) | ≈ 1.268 × (10^{30}) | ≈ 26.8 % |
クエッタバイトでは誤差が 25 % を超え、テラバイトでも約 10 % の違いがあります。この不一致は、ハードウェアメーカー(例:HDD・SSD ベンダー)が容量を十進単位で広告し、OS が二進単位で表示するために生じます。
標準単位とは何か?
「キロバイト=1024 バイト」という規則は古い慣習です。業界ではまだ RAM 製造(JEDEC)や多くのソフトウェア、Windows など一部 OS がこの規則を使用しています。一方でストレージベンダーは十進単位を好むため混乱が生じます。
これを解消するために国際電気標準会議(IEC)は二進数の接頭辞を導入しました。
| 二進単位 | 値 | 十進単位 | 値 |
|---|---|---|---|
| KiB (キビバイト) | (2^{10}) | kB (キロバイト) | (10^3) |
| MiB (メビバイト) | (2^{20}) | MB (メガバイト) | (10^6) |
| GiB (ギビバイト) | (2^{30}) | GB (ギガバイト) | (10^9) |
| TiB (テビバイト) | (2^{40}) | TB (テラバイト) | (10^{12}) |
| PiB (ペビバイト) | (2^{50}) | PB (ペタバイト) | (10^{15}) |
| EiB (エクシバイト) | (2^{60}) | EB (エクサバイト) | (10^{18}) |
| ZiB (ゼビバイト) | (2^{70}) | ZB (ゼタバイト) | (10^{21}) |
| YiB (ヨビバイト) | (2^{80}) | YB (ヨタバイト) | (10^{24}) |
| RiB (ロビバイト) | (2^{90}) | RB (ロンナバイト) | (10^{27}) |
| QiB (クエビバイト) | (2^{100}) | QB (クエッタバイト) | (10^{30}) |
ガイドライン:
- 10 のべき乗には SI 接頭辞(k, M, G …)を使用。
- 2 のべき乗には IEC バイナリ接頭辞(Ki, Mi, Gi …)を使用。
結論
「1 キロバイト=1024 バイト」という慣習は依然として根強いですが、文脈によっては十分に許容できる近似値です。しかし混乱を招くことも多いため、特に非技術者が扱う場面では IEC のバイナリ接頭辞を採用することで、十進数か二進数かを明確に区別できます。これにより容量表示の誤解を減らし、データ管理やシステム設計での一貫性が保たれます。