コンテンツにスキップ

ファイルサイズ単位変換表

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 MB100,000 B0.1 MiB104,858 B
0.5 MB500,000 B0.5 MiB524,288 B
1 MB1,000,000 B1 MiB1,048,576 B
2 MB2,000,000 B2 MiB2,097,152 B
5 MB5,000,000 B5 MiB5,242,880 B
10 MB10,000,000 B10 MiB10,485,760 B
20 MB20,000,000 B20 MiB20,971,520 B
25 MB25,000,000 B25 MiB26,214,400 B
50 MB50,000,000 B50 MiB52,428,800 B
100 MB100,000,000 B100 MiB104,857,600 B
256 MB256,000,000 B256 MiB268,435,456 B
512 MB512,000,000 B512 MiB536,870,912 B
1 GB1,000,000,000 B1 GiB1,073,741,824 B

主要サービス・ツールでの単位の解釈

サービス / 設定単位表記実際の解釈
PHP(php.ini)MMiB(2進数)10M = 10,485,760 B
Nginx(client_max_body_size)mMiB(2進数)10m = 10,485,760 B
Apache(LimitRequestBody)バイト指定バイト(直値)10485760 = 10 MiB
Windows エクスプローラーMB と表示MiB(2進数)で計算「9.99 MB」= 10,476,544 B
macOS FinderMB と表示MB(10進数)「10 MB」= 10,000,000 B
Linux(ls -lh)MMiB(2進数)10M = 10 MiB
Gmail 添付上限25 MBMB(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 では、主要なアップロード上限に合わせた境界値テスト用ファイルを提供しています。単位の解釈に合わせて適切なファイルを選択してください。