Разница в размере файла между МБ и байтами

Я пытаюсь понять следующую проблему. Я читаю информацию о файле для файла следующим образом:

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 МиБ.

Другие вопросы по тегам