コンテンツにスキップ

ファイルサイズ単位換算(MB・MiB・GB・GiB)

KB・KiB・MB・MiB・GB・GiBのバイト数を瞬時に換算。境界値テスト設計・アップロード上限計算に。

完全無料 登録不要 ブラウザ完結 5 言語対応 ダークモード
バイト (B)
KB (1,000 B)
KiB (1,024 B)
MB (1,000,000 B)
MiB (1,048,576 B)
GB (10⁹ B)
GiB (2³⁰ B)
TB (10¹² B)
うまく動かない・表示がおかしい場合は お問い合わせフォーム からご報告ください。改善の参考にします。

他のオンラインツール

関連記事

📖 つまずきやすいポイント

B・KB・KiB・MB・MiB・GB・GiB を相互に換算します。1000 進 (SI) と 1024 進 (二進接頭辞) の両方を並べて表示するので、どちらの意味で書かれた数字なのかを確かめられます。処理はブラウザ内で完結します。ただし、あなたが見ている「500MB」がどちらの意味かは、このツールには分かりません単位の表記だけでは判別できず、それを書いたソフトウェアの流儀を知る必要があります容量にまつわるトラブルの大半は、計算間違いではなく、この「どちらの 1MB か」の食い違いです。

ケース 何が起きるか どうする
同じ「GB」でも 7% 以上ずれる 1 GB は 1,000,000,000 バイト、1 GiB は 1,073,741,824 バイトで、その差は 7.4% です。接頭辞が 1 つ上がるごとに差は開き、TB と TiB では約 10% になります。問題は、多くのソフトが 1024 進で計算しながら「GB」と表示していることです — Windows のエクスプローラーがまさにこれで、1 GiB のファイルを「1 GB」と表示します。一方 ドライブメーカーと macOS は 1000 進を使います。だから「500GB のドライブを買ったのに 465GB しかない」は誤表示ではありません500,000,000,000 バイトを 1024 進で数え直すと 465.7 GiB になる、というだけのことです。 仕様書・要件・API のドキュメントには、単位ではなくバイト数を書いてください。 max_upload = 10485760 は誤解しようがありませんが、「10MB まで」は読む人によって 10,000,000 にも 10,485,760 にもなります。既存の数字がどちらか分からないときの見分け方があります — その数を 1024 で何回か割ってみて、きれいな整数になるなら 1024 進です (41943044 MiB)。逆に 末尾に 0 が並ぶなら 1000 進です。コマンドラインでは、ls -lstat が返す生のバイト数が唯一の正解で、-h を付けた時点で丸めが入ります数字を突き合わせるときは必ず生のバイト数で比較してください
アップロード上限は「ファイルサイズ」ではない 「10MB まで」と決めても、サーバーに届くリクエストは 10MB より大きくなりますmultipart/form-data にはフィールド境界とヘッダが付き、ファイルを Base64 で送る設計 (JSON API に埋め込むなど) なら 33% 増えます — 10MB のファイルが 13.3MB になります。さらに、上限は1 か所ではなく複数の層にあり、最も小さい値が勝ちます: nginx の client_max_body_size、PHP の upload_max_filesizepost_max_size、アプリ側の検証、ロードバランサや CDN の上限。症状が層ごとに違うのが厄介ですnginx で越えると 413 が返り、PHP で越えると $_FILES が空のまま 200 が返るので、後者は「何も起きない」という一番分かりにくい壊れ方をします。 4 つの値を同時に、同じ方針で決めてください。 目安は client_max_body_sizepost_max_sizeupload_max_filesize ≥ 実際に許すサイズで、間に 20〜30% の余裕を持たせます — 10MB を許すなら upload_max_filesize=10M / post_max_size=12M / client_max_body_size=16M あたりです。大きいファイルを扱うなら時間側も揃えます: max_execution_time と nginx の fastcgi_read_timeoutどちらか一方だけ延ばしても、短いほうで切れます。そして上限値は「想定される最大のユースケース × 2」を起点にし、なぜその値なのかをコメントに残してください根拠のない値は、後で誰も安全に変更できません
ディスク上の占有量は表示サイズと違う ファイルシステムはブロック単位で領域を割り当てるので、1 バイトのファイルでも 4 KiB を占有します (多くの環境の既定ブロックサイズ)。1 ファイルなら誤差ですが、1 万個の小さなファイルがあれば、合計 100KB のはずが 40MB 使っていますキャッシュディレクトリや node_modules で「サイズを足しても合わない」のはこれが原因です。逆方向のずれもあります: スパースファイル (中身が空の巨大なディスクイメージなど) は表示サイズより実占有が小さくファイルシステムの圧縮や重複排除が効いていれば、さらに小さくなりますつまり「サイズ」という言葉が 2 つの別々の量を指しています。 2 つの数を別々に測ってください。 Linux / macOS なら du -sh --apparent-size が「ファイルの中身の合計」、du -sh が「実際に占有しているブロックの合計」です。この 2 つが大きく食い違うディレクトリは、小さなファイルが大量にあるということで、ディスクの空きだけでなく inode の枯渇にも近づいています (df -i で確認できます — 容量に余裕があるのに書き込めない場合、たいていこちらです)。バックアップやコンテナイメージの見積もりでは「実占有」ではなく「中身の合計」を使ってください転送量とアーカイブサイズは中身に比例し、ブロック割り当てには比例しません

接頭辞の意味は場面によって切り替わります。覚えておくと迷わない対応が 3 つあります。メモリは常に 1024 進です — 「8GB のメモリ」は必ず 8 GiB で、これは物理的にアドレス線が 2 の冪だからです。ストレージの製品表示は 1000 進。そしてネットワークの帯域はビットで、しかも 1000 進です — 「1Gbps」は 125 MB/s (ビットをバイトにするので 8 で割ります)。「100Mbps の回線なのに 12MB/s しか出ない」は正常です。もうひとつ、ビットとバイトの表記は bB の大文字小文字だけで区別されますこの 1 文字が 8 倍の違いを生むので、資料を書くときは MbpsMB/s を省略せずに書いてください。最後に、KB は歴史的に 1024 を指すことも多く、KiB という表記はそれを解消するために 1998 年に導入されました新しく書く文書では KiB / MiB を使い、読むときは両方の可能性を疑うのが実務的です。

📖 使い方

  1. 1
    数値と単位を入力
    左側の入力欄に数値を入力し、隣のドロップダウンで単位 (B / KB / KiB / MB / MiB / GB / GiB) を選択します。
  2. 2
    全単位への換算結果を確認
    B・KB・KiB・MB・MiB・GB・GiB・TB の全単位への換算値が一覧で表示されます。境界値テストやアップロード上限の設計に役立ちます。
  3. 3
    SI 単位 (MB) と 2 進単位 (MiB) の違いを確認
    1 MB = 1,000,000 B、1 MiB = 1,048,576 B です。OS が表示する単位と仕様書の単位が異なる場合はここで確認できます。

❓ よくある質問

MB と MiB の違いは何ですか?
MB (メガバイト) は SI 単位で 1,000,000 バイト。MiB (メビバイト) は IEC 単位で 1,048,576 バイトです。Windows はドライブサイズを MiB で表示するため、1 TB ドライブが 931 GiB と表示されます。
OS が表示する GB と仕様書の GB が違うのはなぜですか?
Windows はバイナリ単位 (GiB) で表示し、「GB」と表記します。macOS 10.6 以降は SI 単位 (GB) で表示します。ストレージメーカーは SI 単位で容量を宣伝します。この違いが「1 TB が 931 GB に見える」原因です。
1 GB のファイルに何バイト必要ですか?
SI (GB) では 1,000,000,000 バイト (10^9) です。バイナリ (GiB) では 1,073,741,824 バイト (2^30) です。アップロード上限の実装では、どちらの単位を使うかを明確にすることが重要です。
🐛 このツールで問題が発生しましたか?

完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。

※ 不具合再現のため、ブラウザ情報 (UA / 画面サイズ / 言語 / URL) を自動で送信します