Разница в размере файла между МБ и байтами
Я пытаюсь понять следующую проблему. Я читаю информацию о файле для файла следующим образом:
FileInfo info = new FileInfo(path);
Затем код возвращает 16599774 байта для моего файла, когда я делаю info.Length
, Когда я конвертирую байты в МБ, я получаю 15,8 МБ.
Может кто-нибудь объяснить мне разницу между размером в байтах и МБ, пожалуйста?
3 ответа
Обычно файловые системы вычисляют размеры файлов в мегабайтах (МиБ), но сообщают о результатах в мегабайтах (МБ). Разница между этими единицами заключается в том, что MB - это базовый 10-й модуль, который имеет 1000000 байт (один миллион), как и ожидалось. Но MiB - это модуль базы 2, который содержит 1024*1024 байта (1048576 байтов). Если вы разделите 16599774 байта на 1048576 (байт на мегабайт), вы получите 15,8 мегабайта (МиБ). Но опять же ОС сообщает об этом числе в мегабайтах (МБ).
Обратите внимание, что обычно производители жестких дисков используют этот трюк base10 / base2 и сообщают о размерах дисков в гигабайтах (ГБ) или терабайтах (ТБ). И вы видите точно такое же уменьшение размера при проверке размера жесткого диска в файловой системе. Например, 5 ТБ на самом деле составляют 4,5 Тебибайта TiB. Но файловая система покажет вам 4,5 ТБ.
Я думаю, вы думаете, что это ровно 1 миллион байт, но на самом деле это 1 мегабайт = 1 048 576 байт
Mebibyte является кратным единичного байта для количеств цифровой информации.
Вот страница Википедии об этом.
Mebibyte - 2^20 байтов, или 1 048 576 байтов. Вы конвертируете не в мегабайты, а в мегабайты.
Количество байтов (16 599 774), деленное на байты / МиБ (1 048 576) = 15,8308 МиБ.