Чи правда, що 1 Мб може означати 1000000 байт, 1024000 байт або 1048576 байт? [дублікат]


63

Можливий повтор:
Яка різниця між кібібайт, кілобіт і кілобайт?

Якщо 1 Кб (кілобайт) може означати 1000 байт або 1024 байт,

А 1 Мбайт (мегабайт) може означати 1000 КБ або 1024 КБ,

це не означає, що 1 Мб може означати будь-який із чотирьох нижче? :

  1. 1000 × 1000 = 1000000 байт

  2. 1000 × 1024 = 1024000 байт

  3. 1024 × 1000 = 1024000 байт

  4. 1024 × 1024 = 1048576 байт

Або 2. і 3. не прийнято, тож 1 Мб може означати лише 1000000 байт 1048576 байт?


3
Чи знаєте ви, що є −0 (негативний нуль) і +0 (додатний нуль)? en.wikipedia.org/wiki/Signed_zero
Акі

4
Єдине місце, де я бачив різні змішані префікси - це дискети 1,44 [те, що не є мебібайтним і не є мегабайтним].
AndrejaKo

Так, але я не розумію, що ти намагаєшся сказати?
Pacerier

"Якщо цифри не прекрасні, я не знаю, що таке". - Пол Ердос
Акі

4
Будь ласка, "kB", а не "KB".
Андреас Рейбранд

Відповіді:


107

По-перше, існує два типи префіксів, коли йдеться про цифрову інформацію (читання байтів ): префікси SI та двійкові префікси .

Префікси SI

Префікси SI - це потужність 1000 (1000 1 , 1000 2 , 1000 3 тощо):

  • 1 кБ = 1 кілобайт = 1000 1 байт = 1000 байт;
  • 1 МБ = 1 мегабайт = 1000 2 байти = 1 000 000 байт;
  • 1 ГБ = 1 гігабайт = 1000 3 байти = 1 000 000 000 байт;
  • і так далі .

Як бачимо, лише символи СІ мега та вище використовуються з великої літери. Тому KB не є дійсним префіксом .

Двійкові префікси

Бінарні префікси - це потужність 1,024 (1,024 1 , 1,024 2 , 1,024 3 тощо):

  • 1 KiB = 1 кібібайт = 1,024 1 байт = 1,024 байт;
  • 1 МіБ = 1 мебібайт = 1,024 2 байти = 1,048,576 байт;
  • 1 ГіБ = 1 гібібайт = 1,024 3 байти = 1,073,741,824 байт;
  • і так далі .

Як ви бачите тут, кожен бінарний символ з великої літери і додається нижній регістр i перед символом B, щоб вказати, що ми говоримо про кібібайт замість кілобайт, мебібайт замість мегабайт тощо.


Однак бінарні префікси широко не використовуються, Windows їх взагалі не використовує.

Тут відбувається те, що Windows каже нам, що накопичувач жорсткого диска має ємність 300,066,795,520 байт, що, за даними Windows, дорівнює 279 ГБ. Тим НЕ менше, ми знаємо , що якщо 1,000,000,000 байт = 1 ГБ, 300,066,795,520 байт = ~ 300 GB = ~ 279,5 GiB .

Тому, якщо ви бачите 1 Кб (що неправильно, пам’ятайте) або 1 Мб, припустіть, що ми говоримо відповідно про 1 кібібайт і 1 мебібайт. Kb , kb , Gb , gb тощо є також частими, навіть якщо вони представляють біти (8 біт = 1 байт).


Насправді , ні в якому разі не може 1 КБ або 1 Мбайт мати декілька значень, навіть якщо (неправильне) використання, здається, говорить протилежне.


3
Можливо, слід додати, що, коли ми говоримо про швидкість передачі даних (у бітах / с), зазвичай використовується префікси базової 10, наприклад, Gb / s фактично означає "один мільярд біт на секунду".
Френк

3
Бінарні префікси відносно нові, і все ще дуже часто використовувати префікси SI для позначення потужностей 2. Я думаю, що багато людей навіть не знають про бінарні префікси. @Novox робить хороший момент: навіть люди, які використовують ГБ, щоб означати 1048576 байт пам’яті, зазвичай використовують Гбіт / с, щоб означати 1000000000 біт на секунду. Винахід бінарних префіксів не зробив послідовним використання.
Кіт Томпсон

5
@kubanczyk: Я не погоджуюся з тим, що це лінь - але лінь - це не обов'язково погано. Нам потрібен спосіб посилатися на зберігання в одиницях 1024, 1048576 або 1073741824 байт та до (відносно недавнього) винаходу бінарних префіксів (Ki, Mi, Gi), повторне використання префіксів SI (K, M, G) був єдиним розумним способом зробити це. І ми це робили стільки років, що префікси K, M, G досі неоднозначні. Було б краще використовувати бінарні та префікси SI послідовно з самого початку, але це не сталося.
Кіт Томпсон

2
@kubanczyk Не зрозумійте мене неправильно, я / я / рішучий прихильник правильного використання одиниць. Але я не думаю, що "це очевидно". Якби це було насправді, не було б таких питань, правда?
Френк

3
Гммм, давайте спробуємо це навпаки, чи не так? Подивіться, що сталося з 8 бітами. Замість того, щоб називати це декабітом і наполягати на тому, що декака іноді означає в ІТ 8, а не 10, хтось винайшов новий термін і назвав його байтом. Вуаля! Це ж рішення було можливим і з 1024, якщо не
65536.

14

Кілобайт - це вимірювання базової 10, тому 1 кілобайт = 10 до потужності 3 = 1000 байт.

Хоча це не зовсім точно, щоб точно виміряти фізичні дані, оскільки вони зберігаються у двійковій формі, яка вимірюється в базі 2, і тому кібібайт був створений в 1999 році для заміни кілобайт при використанні в контексті інформатики, щоб означати 1024 байти.

Кібібайт - це вимірювання базової 2, тому 1 кібібайт = 2 потужністю 10 = 1024 байт.

Це ж стосується мегабайт (1 мегабайт = 10 до потужності 6 = 1000000 байт), базовим вимірюванням якого є 2 мебібайта (1 мебібайт = 2 до потужності 20 = 1048576 байт)

  • (1) стосується мегабайт
  • (2) та (3) не приймаються
  • (4) стосується мебібайт

13
Хоча це технічно правильно, я хотів би зазначити, що за звичайного використання ніхто не каже кібібайт чи мебібайт, а коли говорять про «кілобайти», люди посилаються на блок, який відображає Windows або ОС, а це кібібайт. Єдине місце, на якому я регулярно бачив кілобайти, які правильно використовуються, - це ємність жорсткого диска, яка не засмучує користувачів.
Дарт Android

4
Так, але лише тому, що їх операційна система не використовує префікси SI "правильно".
Франк

2
Тим не менш, MB може означати 1 000 000 або 1048 576 байт . Хоча це не правильно , але він широко поширений. CC @DarthAndroid
Даніель Бек

Ах, 1998 ... коли Плутон був планетою, а кілобайт - 1024 байти.
Скримслі

9

В даний час використання "KB", "MB" тощо для позначення будь-якого, крім 1000 байт, 1000 х 1000 байт тощо, є застарілим і суперечить більшості офіційних стандартів. Новим способом вираження 1024 байт, 1024 х 1024 байт тощо є KiB (кібібайт), MiB (мебібайт) тощо. Це безлад, і контекст має важливе значення, щоб зрозуміти, що мається на увазі. Див. Http://en.wikipedia.org/wiki/Kibibyte для обговорення цих питань.


7

Напевно, ні, тому що це було б непослідовне використання префіксів у межах одного числа .

Хоча префікс SI k означає 1000, але в ІТ часто використовується для позначення 1024 (з деякими виступаючими бінарними префіксами ), немає сенсу альтернативу між цими значеннями в одній кількості .



@JdeBP: Цікава примітка. Це було б «правильно» (в тому сенсі , підстава 2) , щоб сказати 1440 KB. Я ніколи не замислювався над / реалізував поєднання двох "систем" у номері 1,44. +1.
BillP3rd

3

Ви правильні у своєму питанні. 1 і 4 є правильними, 2 і 3 - ні.

В основному ви визначаєте "тисячу", яка становить або 1000, або 1024, і використовуєте її для множення. Вони не обмінюються.

У другій базі (двійковій), найближча до 1000 чистої - 1024 (2 ^ 10). Ось як комп'ютери насправді думають про речі, тому в пам'яті (ОЗП), наприклад, 1 МБ буде 1048576 байт.

У базі 10, однак, у вас фактично може бути 1000. Дискові диски працюють так, як на жорсткому диску, як правило, 1 МБ буде 1000000 байт (хоча твердотільний апарат працює у двійковій).

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


1

Отже, ось угода. (Більшість) сьогоднішні комп’ютери працюють у базі 2, а не в базі 10. (Так, я знаю, що є винятки, але вони справді є винятковими випадками.) Для наших (ваших) цілей усі комп'ютери загального призначення (і, звичайно, для всіх споживачів використовують комп'ютери загального призначення) використовують базу 2 для всієї внутрішньої обробки. Фундаментальна одиниця - це біт, який може бути нульовим або одиничним. Вісім з них разом складають байт; 16 слово. Зараз це, як правило, говорять ... 32-бітні комп'ютери, як правило, вважаються як 32-розрядні "слова", 64-бітні комп'ютери, 64-розрядні слова тощо. Ви помітили? Це всі повноваження 2. Комп'ютер з одним "К" або кілобайт пам'яті завжди матиме 1024 байти пам'яті. Один мегабайт пам'яті завжди буде означати 1024 х 1024 байти. Знову ж таки, всі є повноваженнями 2. Отже, комп'ютер із 64 МБ пам'яті завжди матиме 64 х 1024 х 1024 байти. Якщо ви бачите комп'ютери, які рекламуються для продажу, ємність пам'яті (ОЗП) завжди буде базуватися на потужностях 2. Ви ніколи не побачите відеокарти, наприклад, вимагаючи, щоб 1 Гб оперативної пам’яті означав один мільярд байт.

Там, де була введена плутанина, і що зводить людей з розуму, це коли виробники дискових накопичувачів у своєму прагненні запропонувати більші та більші диски сказали: "Гей! М - 1 000 000 ". Якби пару хлопців, наприклад, обговорювали ціну продажу автомобіля, і один пропонував: "Я думаю, що" 8K "звучить правильно," інший автоматично зрозумів би, що "8K" означало 8000 доларів (а не $ 8,192). Отже, ці виробники дискових накопичувачів сказали: "Почнемо рекламувати нашу продукцію, використовуючи ці заходи, щоб вони звучали більше". Але юристи вступили і сказали: "Почекай трохи тут. Практично всі, хто, знаєш,як вони працюють, буде кричати. ​​"На що ці розумні хлопці з реклами відповіли:" Немає проблем. Ну просто поставте крихітну маленьку зірочку поруч із ємністю на коробці та в нашій документації, де написано щось на кшталт "* 1 ГБ = 1 000 000 000 байт". Проблема вирішена."

Отже, ось ми з усією цією плутаниною. Цитуючи статтю з вікі вище, на яку посилається @kreemoweet,

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

І плутанина триває. Для практичних цілей ви, мабуть, повинні припустити, що ємність диска базується на 10 одиницях вимірювання. Так само, можливо, оперативна пам'ять завжди базуватиметься на базі 2 одиниць. Для інших типів пристроїв та продуктів це, мабуть, залежатиме від основної технології та того, що рекламні люди думають, що вони можуть уникнути. Зрештою, більший кращий, чи не так?

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


2
ти впевнений, що це лише чистий маркетинг? можливо, це також пов'язано зі структурою / організацією самого зберігання.
барлоп

3
-1 Це не маркетингова річ, і не вдалося зробити дискові звуки більшими. Це широко поширене, але, тим не менш, цілком помилкове пояснення. Це також висновок, заснований на грубому незнанні предмета. Міжнародна електротехнічна комісія та Інститут інженерів електротехніки та електроніки фактично виклали обґрунтування, яке стосується того, щоб різні інженерні дисципліни розмовляли однією і тією ж мовою, а не плутали один одного в статті IEEE Standard Norer . Це дуже практична інженерна справа.
JdeBP

4
Мій досвід роботи в Miniscribe та пізніше Maxtor у 1980-х та 90-х роках інженером інформує мене про інше. Як комп'ютерні інженери, ми схильні тяжіти до потужностей 2. Байт завжди буде 8 біт. Як додає @barlop, на відміну від основної пам'яті комп'ютера, диски, що обертаються, можуть мати різноманітну структуру / організацію. Тим більше, що технологія приводу настільки вдосконалена, що кількість секторів на доріжку змінюється від внутрішнього до зовнішнього краю поверхні запису. Зауважте, що сектори все ще мають 512 байт. (Знову нудна сила 2).
BillP3rd

1
Це брак досвіду: вузький і міопічний погляд на техніку. Перейдіть і прочитайте статтю про носій IEEE . Це точно такий собі блимає "Але люди завжди використовують сили двох". думаючи, що тоді йде жахливо неправильно, коли він потрапляє в інженерну більшість, яка не блимає так, що це було і спрямовано прямо на це. Як я вже сказав, це практична інженерна справа, і ви іронічно демонструєте ту саму проблему, на яку вона була спрямована. Це не маркетинг, і справа не в тому, щоб зробити щось більш звуковим. Це загальний сфабрикований сміття. Не вірте.
JdeBP

1
@JdeBP впевнені, що інженери, безумовно, придумали умови kibibyte тощо, що демонструється. А яка частка інженерів у світі жорсткого диска ним користується, я не знаю. Я б подумав, можливо, вони за контекстом будуть знати, що вони означають кілобайт, і не знадобиться ні кілобайт, а може й ні. Схоже, BillP3rd думає, що вони знають, і це буде base2, і ви думаєте, що їм потрібно вказати, щоб знати між собою. Але маркетинг вирішив би використовувати меншу одиницю, десятковий префікс на упаковці. Цікаво, чи робив маркетинг це ще до цієї статті про IEEE.
барлоп

0

Так, як це синтаксична катастрофа. Ця стаття Wiki пояснює проблему та містить таблицю "нових" слів, які слід використовувати. Тут у реальному світі ніхто не використовує цих термінів. Ви повинні використовувати контекст, щоб визначити, яке визначення ви дивитесь.


4
-1 за те, що "ніхто". Я використовую їх тут у реальному світі, і я далеко не самотній.
JdeBP

1
Якби пересічний споживач запитав у продавця пам’яті пам’яті комп'ютера, який вони думали придбати, і йому сказали «4 гібібайта», вони б не мали поняття, що мається на увазі. Так само переважна більшість людей ніколи б не вимовляла слова вголос "гібібайт, тибібайт, пібібайт тощо". Серйозно, спробуйте сказати "гібібайт" вголос у три рази швидше, наскільки ви можете. Я можу сказати, що для себе, принаймні, я ніколи їх не чув. (Для контексту я працюю у великій компанії з програмним забезпеченням, про яку ви, напевно, чули і регулярно займаєтесь обсягами даних у терабайтній та петабайтній шкалі.)
BillP3rd

+1 за згадування цих кумедних термінів, а більшість з них не використовує та не використовує контекст
барлоп

1
"ніхто" означає "ніхто", дитина, і це не магічно змінюється контекстом, щоб означати щось інше, ніж те, що означає слово. Це неправда, проте ви намагаєтеся порубати її.
JdeBP

1
@JdeBP - вибачте, Jdebp, але бажаючим цього не зробити. Саме існування кібібайтового терміна є доказом того, що існувало (і досі є) плутанина щодо того, що мається на увазі. Вибачте, що ви зациклювались на цьому терміні протягом десяти років (напевно, ви мали грубу думку про жорсткі диски зі значеннями кібібайт у 2000 році). Я б також запропонував вам попрацювати над редагуванням тієї статті wiki, на яку я посилався - очевидно, що вони повинні помилятися і через відсутність використання (вони, мабуть, залишили вас поза списком опитування).
Джим Б
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.