解説
1MBと1MiBは同じ容量?AIへファイルサイズを計算させる前に単位をそろえよう
ファイルのバイト数は同じなのに、ツールによって容量の数字が違う。AIがどちらかを間違いと説明しても、まず単位の定義を確かめよう。

ファイルのバイト数は同じなのに、ツールによって容量の数字が違う。AIがどちらかを間違いと説明しても、まず単位の定義を確かめよう。
このページではMBとMiBを、架空のファイルの大きさで比べる。実ファイルのアップロードは不要。電卓か、Python 3を使えば計算を確かめられるよ。
Bはバイト、bはビット
バイトはデータの大きさを表す単位で、ここでは1Bを8bitとして扱う。記号の大文字Bと小文字bは区別する。容量のMBと、通信速度で見かけるMb/sを、そのまま同じ数字として比較しないようにしよう。
今回は時間当たりの速度ではなく、ファイル自体の大きさを考える。圧縮の効果を測る話とも分けると分かりやすいよ。
1000のまとまりと、1024のまとまり
NISTの公式資料では、1MBは1000000B、1MiBは1048576Bとして区別されている。Miはmebiという、2のべき乗に対応する接頭語。
| 表記 | バイト数 |
|---|---|
| 1MB | 1000 × 1000 = 1000000B |
| 1MiB | 1024 × 1024 = 1048576B |
同じ1という数字でも、表している大きさが違うんだ。実際の製品表示ではMBという表記の使われ方が曖昧な場合もあるので、表示だけで決めず、製品の説明や元のバイト数を確認したいね。
同じファイルを二通りで表示する
架空のファイルが10485760Bあるとする。
size_bytes = 10485760
print(size_bytes / 1000000)
print(size_bytes / 1048576)
結果は10.48576と10.0。つまり10.48576MBと10MiBで、同じバイト数を表している。編集部では、この計算と、単位からバイト数へ戻す計算を照合した。
ファイルが勝手に小さくなったという意味ではないよ。メートルとセンチメートルのように、何を一単位にするかが違えば数値も変わる。
AIに頼むときの書き方
「10485760Bを、1MB=1000000Bと1MiB=1048576Bの二つで換算してください。単位と丸める前の値を示し、最後だけ小数第2位まで表示してください」と頼める。
小数第2位にすれば、それぞれ10.49MBと10.00MiBになる。比較の途中で丸めると、上限ぎりぎりの判定がずれる場合がある。送信可否などは元の整数のバイト数と、正式な上限の定義で判断しよう。
空き容量や送信上限へ、そのまま広げない
表示の違いを理解しても、保存できるファイル数を単純な割り算だけで保証することはできない。ファイルシステムの管理領域や、サービス側で数える対象が関わる場合がある。
値が合わないときは「元のバイト数」「使った単位」「丸め方」を三つの欄に分けてみよう。AIの説明より先に、どこで数字が変わったかを確認しやすくなるよ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。