Розміри файлів у Windows не мають сенсу


18

Ось у мене цей файл у Windows:

введіть тут опис зображення

Але хіба 62,563 байти 62,6 КБ?

введіть тут опис зображення


24
Дивіться XKCD # 394
Nick T


11
Mac використовує десяткові кілобайти (стандарт IEC), тоді як Windows все ще використовує двійкові кілобайти (з тих пір, перейменовані на кібібайти), Linux зазвичай посилається на KiB (перейменований у бінарні кілобайти). Особисто я вважаю, що це всі види замурованих. Ви не купуєте палицю оперативної пам’яті з 1 000 000 000 байт, а натомість купуєте палицю оперативної пам’яті з 1 073 741 824 байт. Але купуючи жорсткий диск, ви купуєте його з наявними на ньому 500 000 000 000 байт, навіть незважаючи на те, що сектори розподіляються в кратні 512 байти. Мені сподобалися мої кілобайти, коли вони були бінарними ...
phyrfox

1
@phyrfox: 1 МГц процесора - це 1 мільйон циклів, а не 1,073,741,824 циклу. 1 Мбіт / с мережевого трафіку також становить 1 мільйон біт.
Зан Лінкс

3
@ZanLynx Mega - це не 1 мільйон, вона адаптована "чудово" з грецької мови. Також, як вони є, префікси SI мають сенс лише у фізичних одиницях. Але байти і біти не є фізичними одиницями. Більше того, як стандартні префікси SI, існує також стандарт для розмірів пам'яті, який визначає значення кіло, мега та гіга як 1024, 1048576 та 1073741824 відповідно.
Руслан

Відповіді:


53

62,563 байти - 61,0967797 кібібайт . У КІБІ означає префікс , що база для розрахунку 1024, бі стоячи для «довічного» , так як 2 ^ 10 = 1024 . Це тільки один з бінарних префіксів , інші є mebi або Gibi .

Кілобайт з іншого боку - 1000 байт, використовуючи класичні префікси SI, які ви знаєте з кілометрів і кілограмів. Він використовує десяткову основу, 10 ^ 3 = 1000 , тому Google насправді має рацію . Якби ви зафіксували однакову кількість у кібібайте, ви отримали б правильну відповідь у термінології обчислень.

Насправді важливо зробити межу між кілограмом і кібі в ці дні, і насправді Windows повинна повідомити про це як "61 KiB", щоб бути абсолютно точним. Це умова IEC для полегшення розрізнення.

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


1
@Joker_vD: На щастя , так ;-) кіло і Мег (і які б інші префікси будуть слідувати) лише фактори, а не кількість їх власні, так використовуючи тільки K і MG і T і P і т.д.) були б абсолютно безглуздо. (Очевидно це стосується префіксів kibi , mebi і т. Д., Очевидно.) Більше того, всі загальновживані одиниці чудово не містять двозначності, оскільки жодна абревіатура не використовується двічі, але K на перший погляд виглядатиме так само, як K для Кельвіна .
АБО Mapper

1
@ORMapper Так, і T помиляється з Tesla . Тому що очевидно, в посібниках програміста часто обговорюється основна фізика.
Joker_vD

1
@Joker_vD: Незалежно від того, чи може з’явитися фізика, немає значення. Справа в тому, що одиничні знаки K і T більше не будуть однозначними без будь-якого контексту - таким чином створюється безперечний недолік порівняно з унікальним відображенням між одиничними знаками та одиницями -, що робить таку умову вкрай небажаною.
АБО Mapper

1
Хто за межами ніші комп'ютерного світу знає, що таке «кібібайт»? До речі, лише нещодавно Google мав «рацію». Це все ще дуже жива дискусія щодо того, чи є кілобайт 1000 чи 1024 байтів.
Джастін Крейча

9
Я єдиний, хто трохи засмучений тим, що це скорочується до 61,0, а не округляється до 61,1?
Крістофер Олссон

22

Так, подумайте про Google як про Шалену Шапочку. Ви повинні задати правильне запитання. А може ельф: Іноді ваша відповідь буде і так, і ні.

байт в KiB.  Кілобайт комп’ютера;  або кібібайт.


5

1 КБ = 1024 байти. Таким чином:

62563 / 1024 = 61.097KB

Як ярлик, багато людей і системи трактують КБ як 1000, оскільки Kilo є приставкою SI для 1000. Однак комп'ютерні фахівці використовують приставку для 2 ^ 10, що становить 1024.


3

Більшість номерів, пов'язаних з комп'ютером, використовують двійкові префікси на відміну від системи SI, яка використовує десяткові префікси. Це означає, що:

  • 1 кілограм = 10 3 грами, але
  • 1 кілобайт = 2 10 байт

Це відповідно 1000 грам і 1024 байти. 62563 / 1024 ~= 61, тож Windows має рацію.

Не все, що пов’язано з комп'ютером, базується на бінарних префіксах, але ця невідповідність часто призводить до непорозумінь. Ця сторінка Вікіпедії описано, які префікси використовуються для вимірювання різних речей.

Один крайній випадок - пропускна здатність. Зазвичай використовується двійкові префікси, коли їх виражають у байтах на секунду, а десяткові префікси - у бітах на секунду. Тож справжнє речення:

1 байт в секунду = 8 біт на секунду

Але ця помилкова:

1 кілобайт в секунду = 8 кілобітів на секунду

Оскільки:

  • 1 Кб / с = 1024 Б / с
  • 1 Кбіт / с = 1000 bps

( пов'язане питання )


1
Помилка: 2 ^ 8 = 256 ---> Я припускаю, що це повинно бути 2 ^ 10 ;-)
Ханну

Сторінка обговорення WP набагато цікавіша за фактичну статтю (дуже велика дискусія щодо того, чи має КБ 1024 чи 1000 байт).
Джастін Крейча

Ширина смуги частот виражається в Гц, де в префіксах SI використовується потужність-10. Причина пропускної здатності (швидкість передачі даних, еквівалентно пропускну здатність, помножена на ефективність кодування) неоднозначна, тому що перше визначення призводить до того (KB)/s, що KB використовує префікс на основі двійкового типу, а другий - на кГц або кбауд, використовуючи десяткові префікс.
Ben Voigt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.