このページで行うこと
このページは、デジタルストレージの単位である ギビバイト(GiB、2進接頭辞) と ギガバイト(GB、10進接頭辞) の間の正確な変換を提供します。ドライブの箱に書かれた容量と、OSが表示する容量を突き合わせたい場合、クラウドストレージの割り当てと請求単位を比較したい場合、あるいはファイルサイズを異なる基準で確認したい場合などに使います。GiBとGBは見た目が似ているため、ほとんどの人が間違える単位対です。このページは、その混乱を正確な数値で解消します。
他ページとの違い
このページは、GiBとGBの変換に特化している点が最大の特徴です。一般的な単位変換ツールでは近似値を使うことがありますが、ここでは厳密な係数を使用します。
- 正確な換算係数: 1 GiB = 1.073741824 GB(正確)、1 GB = 0.931322574615 GiB(正確)。
- 方向が重要: GiB→GBに変換するときは1.073741824を掛け、GB→GiBに変換するときは逆数0.931322574615を掛けます。単一の係数で両方向を計算するのではなく、方向ごとに正しい乗数を適用します。
- 数値の由来: 10進(SI)単位は1000の累乗(1 GB = 1,000,000,000 バイト)、2進(IEC)単位は1024の累乗(1 GiB = 1,073,741,824 バイト)に基づきます。この差が変換係数の根拠です。
- 業界の対立を解消: ドライブメーカーは10進GB(またはTB)で容量を表示しますが、OS(特にWindows)は2進GiB(またはTiB)で表示することがほとんどです。そのため「1 TB」ドライブが「約931 GiB」と表示される現象が起こります。このページは、その数字を正確に検証できます。
変換の仕組みと計算例
変換は単純な乗算です。
- GiB → GB: 値(GiB) × 1.073741824 = 値(GB)
- GB → GiB: 値(GB) × 0.931322574615 = 値(GiB)
例えば、1 TB(= 1000 GB)のドライブをGiBに変換すると: 1000 × 0.931322574615 = 931.322574615 GiB → 約931 GiB(小数点以下切り捨て表示の場合)。
逆に、OSで500 GiBと表示されているデータのGB換算は: 500 × 1.073741824 = 536.870912 GB。
これらの計算は、係数が正確である限り誤差が生じません。このページはその厳密な係数を使って計算します。
ルールとエッジケース
変換は決定論的で、以下のルールに従います。
- 負の値は扱わない: デジタルストレージに負の容量は意味がないため、入力は非負の数値とします。
- ゼロはゼロ: ゼロを変換してもゼロです(0 GiB = 0 GB)。
- 大きな数値も正確: 数百TBのような巨大な値でも、係数はそのまま使われ、切り捨てや丸めなしで計算されます。ただし、表示上は小数点以下の桁数を制限する場合があります。
- 精度の表示: 内部計算は倍精度浮動小数点で行われ、結果が小数点以下多数桁になる場合は、利用者が指定した桁数に丸めて表示しますが、元の計算値は保持されます。
- このページが扱わない単位: キロバイト(KB/KiB)、メガバイト(MB/MiB)、テラバイト(TB/TiB)など、GiBとGB以外の単位は変換しません。
誰がこのページを使うか
- ストレージ購入者: 「1 TB」と書かれた外付けドライブを買って、Windowsで「931 GiB」と表示された理由を確認したい人。
- クラウドエンジニア: AWSのEBSボリュームのようにGiBで表示されるリソースと、GBで請求される料金を比較する必要がある人。また、データ転送量の上限をGBとGiBの両方で確認する場合。
- システム管理者: 仮想ディスクのプロビジョニング時に、ハイパーバイザーが2進単位を使い、ゲストOSが10進単位で報告するケースで正確な容量を把握したい人。
- 学生: コンピュータアーキテクチャを学び、SI接頭辞とIEC接頭辞の違いを理解する必要がある人。
- スクリプト作成者: シェルスクリプトやスプレッドシートで正確な変換係数を使いたい人。
- 一般消費者: メモリーカード、SSD、USBドライブを購入する際、表示容量と実際の使用可能容量の差を計算したい人。
規格と歴史的な背景
混乱の原因は、2つの異なる規格が併存していることにあります。
- SI(国際単位系)接頭辞: 「ギガ」(G)は10^9(10億)を意味します。1 GB = 1,000,000,000 バイト。これがHDDやSSD、ネットワーク機器の容量表記の標準です。
- IEC(国際電気標準会議)接頭辞: 1998年にIEC 60027-2規格で「ギビ」(Gi)が導入されました。1 GiB = 1,073,741,824 バイト(2^30)。これはメモリ(RAM)やファイルシステム、多くのOS(Windows、macOSの一部)で使われています。
- IEEE 1541規格: 2002年に米国電気電子技術者協会が同様のバイナリ接頭辞を標準化しました。
なぜOSが2進単位を使うのか。それはメモリアドレス指定が2進数に基づいているため、ファイルシステムのクラスタサイズやページングの単位が2の累乗で設計された歴史的経緯によるものです。一方、ストレージメーカーはSI単位を使うことで、数値が大きくなる(ように見える)マーケティング上の利点もあります。また、SI単位は国際取引の標準です。
よくある落とし所と注意点
- クラウドのAPIとコンソール: AWSのEC2インスタンスのEBSボリュームはGiBで指定しますが、S3のストレージ容量はGBで課金されます。同じクラウドプロバイダー内でも単位が混在するため、変換が必要です。
- ネットワーク帯域幅: ネットワーク機器のスループットは通常bps(ビット/秒)ですが、ストレージのIOPSや転送量制限ではGiBとGBが混在します。例えば、「1 Gbps」という帯域を「1 GB/秒」と誤解しないように注意。
- ソフトウェアのAPI: 多くのプログラミング言語やAPIはデフォルトで2進単位(GiB)を使います(例:Pythonの
os.statで得られるファイルサイズはバイト単位ですが、人間が読める形に変換するときにGiBを使う実装が多い)。一方、課金APIはGBを要求することがある。 - ファイルエクスプローラとプロパティ: Windowsは「プロパティ」でGiBを表示する一方、macOS Sierra以降は10進GBを標準としています。Linuxの
ls -lhはデフォルトで2進単位(Linuxカーネルの慣習)ですが、--siオプションで10進に変更可能です。
よくある質問(FAQ)
Q: 1 TBのSSDを買ったのに、Windowsでは931 GiBと表示されます。これは不良品ですか? A: いいえ、正常です。メーカーは10進の1 TB(1,000,000,000,000 バイト)で表示していますが、OSは2進のGiBで表示するため、1,000,000,000,000 ÷ 1,073,741,824 ≒ 931.32 GiBになります。このページで計算すれば正確な値が確認できます。
Q: GiBとGBはどちらが正しい単位ですか? A: どちらも正式な単位です。技術的には、メモリやファイルシステムの内部構造にはGiB(2進)が適切で、ストレージ製品の容量表示やデータ転送速度にはGB(10進)が標準です。状況に応じて使い分ける必要があります。
Q: 変換係数はなぜ小数点以下9桁もあるのですか? A: 1 GiB = 1024^3 バイト、1 GB = 1000^3 バイトのため、その比は 1073741824/1000000000 = 1.073741824(整数比)です。この割り算が小数点以下9桁で終わる有限小数です。逆数は無理数に近い循環小数ですが、実用上はファクトシートに記載の係数を使えば十分です。
Q: このページで1 GBをGiBに変換すると0.931322574615 GiBになりますが、丸めてもいいですか? A: 多くの用途では0.931 GiB、または0.9313 GiBで十分です。ただし、正確な計算が必要な場合(例:複数回の変換を繰り返すスクリプト)は、丸め誤差が累積する可能性があるため、できるだけ元の係数を使うことを推奨します。
Q: クラウドのストレージ料金がGiB単位で記載されていますが、計算機でGBに変換して請求額を確認してもいいですか? A: はい、可能です。ただし、プロバイダーによっては「GiB」と書かれていても内部的にGBに換算している場合や、丸め方が異なる場合があるため、契約条件をよく確認してください。このページの変換は理論上の正確な値です。
Q: ギガバイトとギビバイトは同じものだと思っていました。なぜこんなにややこしいのですか? A: 歴史的に、ストレージ業界は10進接頭辞を使い、半導体メモリ業界は2進接頭辞を使ってきました。1990年代後半にIECが2進接頭辞を公式に定義するまで、多くの人が「1 KB = 1024バイト」と暗黙に使っていましたが、今では厳密に区別すべきという認識が広がっています。このページはその区別を正確に行うためのツールです。