Перетворення байтів у мегабайти


103

Я бачив три способи перетворення з байтів у мегабайти:

  1. мегабайт = байт / 1000000
  2. мегабайт = байт / 1024/1024
  3. мегабайт = байт / 1024/1000

Гаразд, я думаю, що №3 абсолютно неправильний, але я це бачив. Я думаю, що №2 є правильним, але я шукаю авторитетного авторитету (наприклад, W3C, ISO, NIST тощо), щоб уточнити, який мегабайт - це справжній мегабайт. Чи може хтось навести джерело, яке чітко пояснює, як робиться цей розрахунок?

Питання про бонус: якщо №2 - мегабайт, як називаються №1 та №3?

BTW: Виробники жорстких дисків не вважаються повноваженнями щодо цього!


3
Жорсткі виробники жорстких дисків у вважаються владою на цьому, оскільки їх використання мегабайта в середній сенс # 1 є рушійною силою прийняття цього перетворення. Зауважте, що ОС Microsoft все ще використовують сенс №2.
Майкл Петротта

3
№3 слід назвати дискетою мегабайт. 3,5-дюймові дискети були досить помітними для використання цього (і я не пам'ятаю, щоб бачити його деінде).
Майкл Мадсен

15
І обов’язкові: xkcd.com/394
Сева Алексєєва

4
Людина о людина. Між цим і кодуванням тексту, я іноді впадаю у відчай від нашої непосильної здатності додавати складні перегини до самих основних речей.
Пол Д. Уейт

4
Виробники жорстких дисків, швидше за все, використовують номер 1, щоб отримати найбільшу кількість. Для ГБ різниця становить 7%, а для туберкульозу - різниця 10%.
Пітер Мортенсен

Відповіді:


115

Традиційно під мегабайт ми маємо на увазі ваш другий варіант - 1 мегабайт = 2 20 байт. Але насправді це не правильно, оскільки мега означає 1 000 000. Існує нова стандартна назва на 2 20 байт, це мебібайт ( http://en.wikipedia.org/wiki/Mebibyte ), і вона набирає популярність.


10
Я погоджуюся з усім цим, за винятком того, що він набирає велику популярність. Розум 1024 = K та друзів фактично невразливий. Коли ви змусите людей почати говорити «зломщик» замість «хакер», поверніться до мене.
ТЕД

5
Не збираюся брати участь у єретичній згадці про "мебібайт", але це потребує великих зусиль.
aehiilrs

3
@ TED: насправді використання "хакера", щоб означати "зломщик", є прекрасним прикладом популярної культури, що перекриває використання, яке бажають вунди.
Майкл Петротта

2
моє особисте відчуття, що мебібайт набирає популярність, можливо, я помиляюся. Я бачив на досить популярному розмірі веб-сайтів для завантаження, показаному в MiB та KiB.
Андрій

1
Ну, я згоден з вами, і я також використовую 10-базові мега-і 2-базові кібі та мебі. Це стандарт IEC для метричного використання: він є остаточним, і немає жодної корисної дії, що надходить над ним.
Zan Lynx

27

Є стандарт IEC, який розрізняє терміни, наприклад, Мебібайт = 1024 ^ 2 байт, але Мегабайт = 1000 ^ 2 (щоб бути сумісним для одиниць СІ, наприклад, кілограми, де k / M / ... означає 1000/1000000). Насправді більшість людей в ІТ-області віддадуть перевагу Мегабайт = 1024 ^ 2, а виробники жорстких дисків віддадуть перевагу Мегабайт = 1000 ^ 2 (адже розміри жорсткого диска будуть звучати більше, ніж вони є).

Власне, більшість людей плутають стандарт IEC (множник 1000) та традиційне значення (множник 1024). Взагалі не варто робити припущення щодо того, що означають люди. Наприклад, 128 кбіт / с для MP3 зазвичай означає 128000 біт, оскільки множник 1000 в основному використовується з одиничними бітами. Але часто люди дзвонять 2048 кбіт / с, що дорівнює 2 Мбіт / с - бентежить так?

Тому, як правило, взагалі не довіряйте одиницям біт / байт;)


17

BTW: Виробники жорстких дисків не вважаються повноваженнями щодо цього!

О, так, вони є (і визначення, яке вони припускають від СІ, є правильним). Про пов'язану проблему дивіться цю публікацію на CodingHorror.


4
Вибачте з нинішніх прав, але їх визначення Mega IS правильне, незалежно від того, що думають програмісти. Я можу жити з M = 2 ^ 20, добре, але це лише з історичних причин.
Федеріко А. Рампоні

+1 за мокрі стояти з HD-компаніями та ентузіастами стандартів СІ проти всіх інших!
Джеффрі Л Уітлідж

11
Дякую Джеффрі :), але це не лише компанії HD: ваш процесор працює на 2600 МГц; Ваш математичний процесор робить XY Mflops; Ethernet робить 100 Мбіт / с; Ваша камера має 5 Мпікселів; Швидкість Blu-ray 1х - 36 Мбіт / с ... Усі ці "М" стоять за 10 ^ 6, а не 2 ^ 20.
Федеріко А. Рампоні

-1 Я не впевнений, що дотримуюся цієї відповіді. Який виробник жорсткого диска зробив визначення? Я не думаю, що CodingHorror виробляє жорсткі диски? Я шукаю повноваження, і виробник жорсткого диска мав би занадто багато упереджень, щоб бути об'єктивним.
Користувач1

1
"Орган", що підтримує M = 10 ^ 6, - це Міжнародне бюро ваг і заходів. Наскільки мені відомо, немає, окрім звичаю, «авторитету», що підтримує M = 2 ^ 20.
Федеріко А. Рампоні

16

Розділіть 2на потужність 20, (1024*1024)байт = 1мегабайт

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  

Це те саме.



3

Відповідь полягає в тому, що №1 є технічно правильним на основі реального значення префіксу Mega, однак (а в житті завжди є все-таки) математика для цього не виходить настільки приємною в базі 2, як це рахують комп'ютери , тому №2 - це те, що люди справді використовують.


2

Використовуйте обчислення, які, швидше за все, очікують ваші користувачі. Ваші користувачі цікавляться, скільки фактичних байтів є на диску або в пам'яті чи іншому, або вони цікавляться лише корисним простором? Відповідь на це запитання підкаже, який розрахунок має найбільш сенс.

Це не питання точності настільки, скільки це питання зручності використання. Надайте розрахунок, який є найбільш корисним для ваших користувачів.


1

Мегабайт означає 2 ^ 20 байт. Я знаю, що технічно це не поєднується з одиницями СІ, і що деякі люди придумали нову термінологію, яка означає 2 ^ 20. Нічого з цього не має значення. Намагання змінити мову, щоб «уточнити» речі, приречені на провал.

Виробники жорстких дисків використовують це для значення 1 000 000 байт, тому що це означає в SI, тому вони технічно вважають, що вони не брешуть (хоча насправді вони є). Це підпадає під брехню, чортова брехня та маркетинг.


0

Загалом, неправильно використовувати десяткові префікси SI (наприклад, кіло, мега), коли йдеться про розміри двійкових даних (за винятком випадкового використання). Це неоднозначно і викликає плутанину. Для точності можна використовувати бінарні префікси (наприклад, 1 мебібайт = 1 МіБ = 1024 кібібайт = 2 ^ 20 байт). Якщо хтось інший використовує десяткові префікси SI для двійкових даних, вам потрібно отримати більше інформації, перш ніж ви зможете знати, що мається на увазі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.