ファイルサイズ単位変換表
B / KB / KiB / MB / MiB / GB / GiB の変換早見表。プログラム実装・設定値の確認・テスト設計にご活用ください。
SI単位系(10進数)とIEC単位系(2進数)の違い
ファイルサイズを表す単位には、国際単位系(SI)に基づく10進数単位と、IECが制定した2進数単位の2種類があります。特に「MB」と「MiB」の混同が境界値テストの失敗につながることがあります。
| SI単位 | 読み方 | バイト数 | IEC単位 | 読み方 | バイト数 | 差 |
|---|---|---|---|---|---|---|
| KB | キロバイト | 1,000 | KiB | キビバイト | 1,024 | +2.4% |
| MB | メガバイト | 1,000,000 | MiB | メビバイト | 1,048,576 | +4.86% |
| GB | ギガバイト | 1,000,000,000 | GiB | ギビバイト | 1,073,741,824 | +7.37% |
| TB | テラバイト | 1,000,000,000,000 | TiB | テビバイト | 1,099,511,627,776 | +9.95% |
MB → バイト 変換表
| MB(10進数) | バイト数 | MiB(2進数) | バイト数 |
|---|---|---|---|
| 0.1 MB | 100,000 B | 0.1 MiB | 104,858 B |
| 0.5 MB | 500,000 B | 0.5 MiB | 524,288 B |
| 1 MB | 1,000,000 B | 1 MiB | 1,048,576 B |
| 2 MB | 2,000,000 B | 2 MiB | 2,097,152 B |
| 5 MB | 5,000,000 B | 5 MiB | 5,242,880 B |
| 10 MB | 10,000,000 B | 10 MiB | 10,485,760 B |
| 20 MB | 20,000,000 B | 20 MiB | 20,971,520 B |
| 25 MB | 25,000,000 B | 25 MiB | 26,214,400 B |
| 50 MB | 50,000,000 B | 50 MiB | 52,428,800 B |
| 100 MB | 100,000,000 B | 100 MiB | 104,857,600 B |
| 256 MB | 256,000,000 B | 256 MiB | 268,435,456 B |
| 512 MB | 512,000,000 B | 512 MiB | 536,870,912 B |
| 1 GB | 1,000,000,000 B | 1 GiB | 1,073,741,824 B |
主要サービス・ツールでの単位の解釈
| サービス / 設定 | 単位表記 | 実際の解釈 | 例 |
|---|---|---|---|
| PHP(php.ini) | M | MiB(2進数) | 10M = 10,485,760 B |
| Nginx(client_max_body_size) | m | MiB(2進数) | 10m = 10,485,760 B |
| Apache(LimitRequestBody) | バイト指定 | バイト(直値) | 10485760 = 10 MiB |
| Windows エクスプローラー | MB と表示 | MiB(2進数)で計算 | 「9.99 MB」= 10,476,544 B |
| macOS Finder | MB と表示 | MB(10進数) | 「10 MB」= 10,000,000 B |
| Linux(ls -lh) | M | MiB(2進数) | 10M = 10 MiB |
| Gmail 添付上限 | 25 MB | MB(10進数) | 25,000,000 B |
| AWS S3 コンソール | MiB 表示 | MiB(2進数) | 表示通り |
計算式
// JavaScript での変換関数
const UNITS = {
// SI(10進数)
KB: 1_000,
MB: 1_000_000,
GB: 1_000_000_000,
TB: 1_000_000_000_000,
// IEC(2進数)
KiB: 1_024,
MiB: 1_048_576,
GiB: 1_073_741_824,
TiB: 1_099_511_627_776,
};
const toBytes = (value, unit) => value * UNITS[unit];
const fromBytes = (bytes, unit) => bytes / UNITS[unit];
// 例: 10 MiB を バイトに変換
console.log(toBytes(10, 'MiB')); // → 10485760
// 例: 10000000 バイトを MB に変換
console.log(fromBytes(10_000_000, 'MB')); // → 10
console.log(fromBytes(10_000_000, 'MiB').toFixed(2)); // → 9.54
1_000, 'MB' => 1_000_000, 'GB' => 1_000_000_000,
'KiB' => 1_024, 'MiB' => 1_048_576, 'GiB' => 1_073_741_824,
];
return (int)($value * ($units[$unit] ?? 1));
}
echo toBytes(10, 'MiB'); // → 10485760
echo toBytes(25, 'MB'); // → 25000000
境界値テスト用ファイルとの対応
DevLab では、主要なアップロード上限に合わせた境界値テスト用ファイルを提供しています。単位の解釈に合わせて適切なファイルを選択してください。
- しきい値テスト用ファイル一覧 — 各上限のちょうど前・ちょうど・ちょうど後のファイルセット