1GBは1000MBか1024MBか — GBとGiB、規格が分けた二つの数え方
同じ「1GB」でも、指すバイト数は一つに決まりません。1,000,000,000 バイトのこともあれば、1,073,741,824 バイトのこともあります。前者は十進のGB(ギガバイト)、後者は二進のGiB(ギビバイト)です。IECの規格はこの二つを別々の単位として分けています。差はおよそ7%。容量が小さいうちは気になりませんが、テラバイト級になると「1TBのHDDが931GBしかない」という形で見えてきます。容量が減ったわけではありません。数え方が二通りあって、表示のラベルが揃っていないだけです。
もつれの出発点は接頭辞です。SI接頭辞のkilo・mega・gigaは、本来10のべき(10³、10⁶、10⁹)を意味します。ところがコンピュータはアドレスもメモリも2のべきで区切るのが自然です。2¹⁰=1024が1000に近いため、初期の慣習で「キロバイト=1024バイト」と読み替えて使ってしまいました。十進の接頭辞に二進の意味を上書きしたわけです。これが数十年ぶんの混乱のもとになりました。IECはこのねじれを解くため、2のべき専用の接頭辞を新しく作りました。
資料には何が書かれているか
二進専用の接頭辞は、IECが1996年に提案し、IEC 60027-2のAmendment 2として1999年1月に公開しました。kibi(キビ、Ki)=2¹⁰、mebi(メビ、Mi)=2²⁰、gibi(ギビ、Gi)=2³⁰、以降tebi・pebiと続きます。この定義は2000年11月のIEC 60027-2第2版に取り込まれ、のちに情報科学の単位を集めたIEC 80000-13へ移されました。米国のNISTが公開している単位の解説ページに、この経緯と数値がそのまま載っています。
NIST『Definitions of the SI units: The binary prefixes』|資料の記述(要旨)1 Kibit=2¹⁰ bit=1024 bit、1 MiB=2²⁰ B=1 048 576 B、1 GiB=2³⁰ B=1 073 741 824 B。対して十進側は 1 GB=10⁹ B=1 000 000 000 B。二進接頭辞はIEC 60027-2のAmendment 2(公開1999-01)で初めて採択され、第2版(2000-11)に取り込まれた、と記されている。
現行の規格本体はIEC 80000-13です。最新版はEdition 2.0(2025年2月)、正式名称は “Quantities and units — Part 13: Information science and technology”(邦題では「量及び単位 — 第13部:情報科学及び技術」に相当)です。無料で読めるプレビューの範囲でも、byte(バイト)の定義ははっきりしています。バイトは英語ではoctet(オクテット)の同義語で、ここでの「バイト」は8ビットのバイトを指します。過去には8ビット以外を指す用法もありました。そのため規格は、名称byteと記号Bを8ビットのバイトに限って使うよう強く推奨しています。プレビューの前書きにも注目です。第2版は2008年の第1版を置換する技術改訂で、その変更点は「二進接頭辞の新規追加(addition of new prefixes for binary multiples)」だと記しています。二進接頭辞そのものは第1版からあり、第2版はそこへ新しい接頭辞を加えたものです。
IEC 80000-13:2025(byteの定義)|資料の記述(要旨)英語では名称“byte”(記号B)はoctetの同義語であり、ここでのbyteは8ビットのバイトを意味する。混同を避けるため、名称byteと記号Bは8ビットのバイトに限って使うことが強く推奨される。記号Bはbel(ベル)の記号Bと混同してはならない、と明記されている。
規格は速度側にも触れています。ビットの記号は bit、転送レートには接頭辞が付きます。たとえばメガビット毎秒は Mbit/s、キロバイト毎秒は kB/s と書けます。記号は、ビットが小文字、バイトが大文字Bで区別します。
定義・試験条件の表
| 試験条件の項目 | 規定されている値・条件 | 注記 |
|---|---|---|
| 1 kB(十進) | 1000 B(10³) 一次資料で確認 | SI接頭辞kは10のべき |
| 1 KiB(二進) | 1024 B(2¹⁰) 二次資料で確認 | kibibyte、記号KiB。数値はNISTの再掲で確認 |
| 1 MiB | 1 048 576 B(2²⁰) 二次資料で確認 | mebibyte。数値はNISTの再掲で確認 |
| 1 GB | 1 000 000 000 B(10⁹) 一次資料で確認 | ストレージのカタログ表記 |
| 1 GiB | 1 073 741 824 B(2³⁰) 二次資料で確認 | Windowsが「GB」と呼ぶ量。数値はNISTの再掲で確認 |
| 1 byte | 8 bit 一次資料で確認 | IEC推奨は8ビット限定、記号B |
この数字をどう読むか
「1GBは1000MBか1024MBか」という問いは、立て方そのものがずれています。IECの定義に従えば、1GBは1000MBです。1024MB相当を指したいなら、それはGiB(1GiB=1024MiB)です。答えは「どちらか」ではなく「別の単位が二つある」。同じ記号Gに二つの意味を負わせたまま話すから、噛み合わなくなります。IECは一方に別名を与えて切り離しました。
規格が単位を分けても、現場の表示は追いついていません。ストレージメーカーは早くから十進を採用しました。Seagateのサポート文書は「業界標準は十進で容量を表示する」と述べ、1GB=10⁹バイト、1TB=10¹²バイトと定義しています。一方でWindowsは、同じバイト数を2³⁰で割った値を、ラベルだけ「GB」と書いて表示します。だから1TB(1 000 000 000 000バイト)を1 073 741 824で割ると約931になり、「1TBのはずが931GB」と見えます。この931という数字は、Seagate自身が文書に明記しています。バイトの総数はどちらも同じです。割る数と貼るラベルが噛み合っていないだけです。
ではWindowsはなぜ「GiB」と正しく書かないのでしょうか。Microsoftの技術ブログが率直に答えています。エクスプローラーがKiBでなくKBを使い続けるのは、メモリメーカーも一般の文書も誰もKiBと呼んでいないからです。正確な用語に切り替えても、大半の利用者には通じません。規格の正しさより、目の前の利用者への通じやすさを選んだと明言しています。是非はさておき、規格が定めた定義と、製品UIが選んだ表記は、別のレイヤーの決定です。それを当事者の言葉で示した例です。
OS側が全面的に規格へ寄せた例もあります。AppleはMac OS X 10.6(Snow Leopard、2009年8月)で容量表示を十進に切り替え、1GB=1 000 000 000バイトで数えるようにしました。同じ物理ドライブが、Windowsでは931GB、当時のMacでは1TBと表示されます。数え方の選択が、そのまま数字に出ます。どちらかが間違っているわけではありません。片方は2³⁰刻み、片方は10⁹刻みで数え、同じ量に別のラベルを貼っているだけです。
数え方が分かれる理由は、数える対象の作りにあります。メモリ(RAM)はアドレスを2進で振るので、容量が自然に2のべきになります。「8GBのメモリ」は、慣例として実際には8GiB(8×2³⁰バイト)を指します。一方、HDDやSSDの容量はセクタの積み上げで決まり、2のべきに揃える必然がないので十進で表記します。同じ「GB」でも、メモリでは2進、ストレージでは十進に寄るわけです。記号は共通でも、背後の数え方が対象ごとに違います。この食い違いを、規格の側は別単位(GiB)を立てて、製品UIの側はラベルを据え置いて、それぞれしのいでいます。だから利用者の手元では、規格上は解決済みのはずのねじれが、いまも表示として残ります。
もう一段ややこしいのが、ビットとバイトの取り違えです。IEC 80000-13はバイトを8ビットと定め、記号は大文字B、ビットは小文字で書き分けます。回線の「100Mbps」は毎秒1億ビットです。ファイルの大きさに使うバイトへ直すには8で割ります。100Mbpsは理論上おおむね12.5MB/sです。ダウンロードが「思ったより遅い」と感じる原因は、しばしばここにあります。大文字小文字ひとつで8倍ずれます。そこに1000か1024かの差が重なると、体感と表示の距離はさらに開きます。
同じ記号が文脈で別の量を指すことは、単位の世界では珍しくありません。LANケーブルのCAT6Aが保証しているのは伝送周波数で、通信速度そのものではありません。SDカードのV30のように、似た数字の速度クラスが複数の規格で並ぶこともあります。「GB」も同じです。表記を額面どおり受け取る前に、どの規格のどの定義で数えた値かを一度確かめてください。
あなたの条件ならこう読み替える
実務では、二つの表記が混ざっている前提で読むのが早いです。買ったドライブの「本当の容量」を疑う前に、その数字が十進表記(メーカー側)か二進計算(OS側)かを見分けてください。931という数字は、欠損ではなく換算の結果だとわかります。バックアップ設計などで「1GiBあたり何バイト確保されるか」を厳密に詰めたいときは、GBでなくGiBの定義(2³⁰=1 073 741 824バイト)を明示して計算根拠を書いておきましょう。あとで表示との食い違いに悩まされにくくなります。※ この記事が示せるのは、その数字がどの規格のどの定義で決まっているかまでです。どの製品を選ぶべきかには踏み込みません。
この数字について、よく調べられている疑問
記号どおりに分ければ1GB=1000MB(十進、10⁹バイト)です。1024倍で数えたいときはGiB(ギビバイト)を使い、1GiB=1024MiB=1 073 741 824バイトになります。IEC 80000-13はこの二つを別の単位として定義しており、同じ「G」でも指す量は約7%違います。
メーカーは十進で1TB=1 000 000 000 000バイトと表記し、Windowsは同じバイト数を2³⁰(=1 073 741 824)で割って「GB」と表示するためです。1 000 000 000 000÷1 073 741 824は約931になります。容量が減ったのではなく、数え方と表示ラベルが食い違っているだけです。
1バイトは8ビットです。IEC 80000-13はバイトの記号を大文字B、ビットを小文字表記と定め、記号Bはbel(ベル)と混同しないよう注意しています。回線速度の100Mbpsはビット毎秒で、8で割ると約12.5MB/sです。大文字小文字の取り違えで8倍ずれます。
この記事の限界
- IECの公開解説ページ(iec.ch/prefixes-binary-multiples)はHTTP 403で開けず、二進接頭辞の数値はNISTの公開ページとIEC 80000-13:2025の本文で確認した。
- 無料で読めるIEC 80000-13:2025のプレビューには第4章(Table 2、二進接頭辞の数値表、17ページ)が含まれておらず、1 KiB=1024 B〜1 GiB=1 073 741 824 Bという数値表そのものは規格の表からではなくNISTの再掲で確認している。図版でも二進接頭辞の数値行はconfidenceをsecondaryにしてこの出所を明示した。
- IEC 60027-2およびIEC 80000-13の全文は有償で、引用した定義の文言は無料プレビューとNISTの範囲にとどまる。
- 「1TB=約931GB」は10¹²÷2³⁰の純粋な換算値で、実際の表示はフォーマット方式・予約領域・OSのバージョンによって前後する。
- Seagateサポート記事の公開・更新年は明記を確認できず、記載した年は概数。
- sources に挙げた iso.org の書誌ページは自動取得に対しHTTP 403を返すが、規格の実在・正式名称・版・発行月はIEC webstore および IEC 80000-13:2025 のプレビューで独立に確認した。
出典
- IEC 80000-13:2025 — Quantities and units — Part 13: Information science and technology/ ISO / 2026-07-15 確認
- IEC 80000-13:2008 — Quantities and units — Part 13: Information science and technology/ ISO / 2026-07-15 確認
- Snow Leopard's new math/ Macworld / 2026-07-15 確認
- Binary prefix/ Wikipedia / 2026-07-15 確認
訂正履歴
この記事に訂正はありません。 誤りを見つけた場合はお問い合わせからご指摘ください。 訂正した場合は、日付とともにこの欄に記録します(訂正履歴の一覧)。
この記事を書いた人
Yamachiki / 運営・調査・執筆X @Yamachikichan1
規格・告示・業界基準が定める数値について、その出どころと試験条件を一次資料まで遡って記録しています。記事に書いたすべての数値には、根拠となる資料の所在(資料名・規格番号・発行者・URL・確認日)を添えています。確認できたことと、確認できなかったことを分けて書くことを、このサイトの基本方針としています。