データサイズの単位を正しく換算する方法
「1GBのはずのファイルが、OSでは0.93GBと表示される」「契約は1Gbpsなのに、実測は125MB/sしか出ない」——データサイズの単位には、混乱を生む2つの落とし穴があります。1つは1000区切りと1024区切りの違い、もう1つはバイトとビットの違いです。どちらも仕様どおりの正しい挙動で、故障でも誤差でもありません。Data Size Converter は、入力したサイズを10進(KB・MB・GB)と2進(KiB・MiB・GiB)の両方で同時に表示し、ビット換算と回線別のダウンロード時間の目安まで一度に確認できるツールです。すべてブラウザ内で計算し、データは外部に送信されません。
1000と1024、どちらが使われているか
キロを1000とする10進の表記と、1024とする2進の表記が併存しているのが混乱の原因です。国際規格では、1000区切りを KB・MB・GB(SI接頭辞)、1024区切りを KiB・MiB・GiB(IEC接頭辞)と書き分けることになっています。しかし実際には、多くの場面で1024区切りなのに GB と表記されており、これが食い違いを生みます。傾向として、ストレージやSSDのパッケージ表記、通信量の請求、クラウドの課金は10進で計算されます。一方、Windowsのファイルサイズ表示やメモリの容量は2進で扱われることが多くなっています。1TBのドライブがOS上で約931GBと表示されるのは、1兆バイトを1024の4乗で割った結果であり、容量が減っているわけではありません。差は単位が上がるごとに広がり、キロで2.4パーセント、テラでは約10パーセントに達します。
バイトとビットを取り違えない
もう1つの定番の混乱がバイトとビットです。1バイトは8ビットで、記号は大文字のBがバイト、小文字のbがビットを表します。回線速度は歴史的にビット単位で表記されるため、1Gbpsは毎秒1ギガビット、つまり毎秒約125メガバイトです。契約速度の数字がそのままファイルの転送速度になると考えると、実測が8分の1に見えて「遅い」と誤解しがちですが、これは単位の違いによるものです。ダウンロードの所要時間を見積もるときは、まずファイルサイズをビットに直してから回線速度で割ります。このツールではビット換算と、代表的な回線速度での所要時間を自動計算して表示します。なお表示される時間は理論値で、実際にはプロトコルのオーバーヘッドや混雑により1割から2割ほど余分にかかるのが一般的です。
開発で単位を意識する場面
この違いは、実務のいくつかの場面で具体的な問題になります。1つ目がファイルアップロードの上限設定です。「10MBまで」と決めたとき、それを10,000,000バイトとするか10,485,760バイトとするかで、境界付近のファイルの可否が変わります。仕様として明記しておかないと、利用者から見て不可解な挙動になります。2つ目がストレージやデータ転送の課金見積もりで、クラウドの多くは10進で計算するため、2進で見積もると請求額とずれます。3つ目がパフォーマンス予算です。ページの総転送量を決める際、モバイル回線でどれくらいの時間がかかるかを把握しておくと、画像やスクリプトの削減目標を具体的に立てられます。単位を揃えて考えるだけで、これらの見積もりの精度が上がります。
表示を分かりやすくする実装のコツ
アプリケーションでファイルサイズを表示する場合、いくつか押さえておくと親切です。まず、どちらの区切りを使っているかを一貫させ、可能なら単位表記も規格に合わせます。次に、桁が上がる境界での表示を調整します。たとえば999.9KBの次を1.0MBとするなど、丸め方を決めておかないと表示が揺れます。小数点以下の桁数も、大きい単位では1桁から2桁に抑えると読みやすくなります。0バイトの表示も忘れがちで、単に0と出すか「0 B」と出すかを決めておきます。加えて、ユーザーに上限を伝える場面では「10MBまで」だけでなく、実際にどの程度のファイルが該当するかの例を添えると理解されやすくなります。細かい部分ですが、こうした配慮が問い合わせを減らします。