Преобразование B в MB правильно или полностью неправильно

0

Я не очень разбираюсь в этих вещах, поэтому, пожалуйста, постарайтесь не делать выводы прямо из ворот. Хорошо, поэтому у меня есть число в байтах, которое я пытался преобразовать в mb с небольшой согласованностью или успехом. Пример - это каталог, который у меня есть, который возвращается в 191,919,191 байт (191,919 МБ), когда я получаю информацию.

Мне было любопытно, как его преобразовать, поэтому вот что я узнал:

Google:

1 KB = 1000 B

1 МБ = 1000 КБ

1 ГБ = 1000 МБ

Все идет нормально...

1024000 B в KB = 1024

1024 КБ в MB = 1.024

Это кажется совершенно логичным...

191,919,191 B до МБ = 191,919 МБ

Это тоже выглядит правильно, но когда я перехожу, чтобы преобразовать свои байты в mb, используя, в основном, любой пример кода, который существует там, я в конечном итоге что-то сильно отличается от дружественного ol google.

По словам Принстона

SYNOPSIS:
Converting between bytes, kilobytes, megabytes, and gigabytes.

SOLUTION:
1 byte = 1 character
1 kilobyte (kb) = 1024 bytes
1 megabyte (Mb) = 1024 kb = 1,048,576 bytes
1 gigabyte (Gb) = 1024 Mb = 1,048,576 kb = 1,073,741,824 bytes

Итак, с этой информацией:

191.919 mb / (1024000) = 187.421 B

Я также видел такие преобразования:

191.919 mb / (1024 * 1024) = 183.028 B

WTF? этот материал просто составлен по мере продвижения или существует стандартный способ получения реального размера файла в mb из байтов? Из-за этой противоречивой информации я полностью потерялся и запутался. У меня нет реального представления о том, кто прав или не прав, или если я просто что-то не хватает.

У меня такой код:

UInt32 fileSize = 191919191; // size in bytes
UInt32 mbSize = fileSize / 1024000; // do conversion
printf(@"%u MB",(unsigned int)mbSize); // result:

Какие результаты:

187 MB

Итак, как в мире может быть 191,919,191 байт = 191 МБ?

  • 0
    @quantdev, нажмите ссылку Google в моем вопросе. Google делает это преобразование? , А что правильно? Я хочу знать - также моя система возвращается так же, как результат Google.
  • 1
    Поиск мегабайта в википедии показывает, что он может указывать либо на двоичное значение (1000 ^ 2), либо на десятичное значение (1024 ^ 2).
Показать ещё 6 комментариев
Теги:
int

1 ответ

0

Просто подвести итоги...

  • Официальное, стандартизованное, стандартное использование префиксов СИ состоит в том, что кило = 10 ^ 3 = 1000, мега = 10 ^ 6 = 1000000 и т.д. Сокращениями являются K, M, G и т.д.
  • Существует отдельный набор префиксов для цифрового мира, где kibi = 2 ^ 10 = 1024, mebi = 2 ^ 20 = 1048576 и т.д. Сокращениями являются Ki, Mi, Gi и т.д.
  • В популярном употреблении аббревиатуры K, M, G и т.д. Немного расплывчаты и иногда понимаются как одно, а иногда и другое.

Суть в том, что всякий раз, когда это имеет значение, вы должны проявлять особую осторожность, чтобы знать, что вы используете. Некоторая документация не будет заботиться об этом и может ввести в заблуждение. Я не вижу, чтобы эта неоднозначность менялась в ближайшее время.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню