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

18

Здесь у меня есть этот файл в Windows:

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

Но не 62 563 байта 62,6 КБ?

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

Кирк Уймет
источник
24
Смотрите XKCD # 394
Ник Т
6
Возможный дубликат В чем разница между кибибайтом, килобитом и килобайтом?
Доктор Рейхард
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 миллион бит.
Zan Lynx
3
@ZanLynx Mega - это не 1 миллион, а адаптированный «отлично» с греческого. Кроме того, префиксы SI имеют смысл только с физическими единицами. Но байты и биты не являются физическими единицами. Более того, поскольку префиксы SI стандартизированы, существует также стандарт для размеров памяти, который определяет значения в килограммах, мегагерцах и гигабайтах как 1024, 1048576 и 1073741824 соответственно.
Руслан

Ответы:

53

62 563 байта - 61.0966797 кибибайт . В КИБИ означает префикс , что база для расчета 1024, би стоя для «двоичного» , так как 2 ^ 10 = 1024 . Это только один из двоичных префиксов , другие - mebi или gibi .

С другой стороны, килобайт составляет 1000 байт, используя классические префиксы SI, которые вы знаете из километров и килограммов. Он использует десятичное основание, 10 ^ 3 = 1000 , поэтому Google на самом деле прав . Если бы вы гуглили на ту же сумму в кибибайтах, вы бы получили правильный ответ в вычислительной терминологии.

В настоящее время очень важно проводить различие между килограммами и киби, и на самом деле Windows должна сообщить об этом как «61 КиБ», чтобы быть абсолютно точным. Это соглашение IEC для облегчения разграничения.

Тем не менее, в наши дни все еще остается много неясностей, когда размеры жестких дисков обычно указываются в двоичных единицах (но не всегда явно), а скорости соединения указываются в единицах СИ.

slhck
источник
1
@Joker_vD: К счастью , так ;-) кило и мег (и какие бы другие префиксы будут следовать) лишь факторы, а не количество их собственные, так используя только K и MG и T и P и т.д.) были бы совершенно бессмысленно. (То же самое справедливо для префиксов kibi , mebi и т. Д., Очевидно.) Более того, все обычно используемые единицы не содержат двусмысленности, так как сокращение не используется дважды, но K на первый взгляд будет выглядеть так же, как K для Кельвина .
ИЛИ Mapper
1
@ORMapper Да, и Т будет принят за Теслу . Потому что, очевидно, в руководствах для программистов часто обсуждается основная физика.
Joker_vD
1
@Joker_vD: может ли физика появиться там не имеет значения. Дело в том, что знаки единиц K и T больше не были бы однозначными без какого-либо контекста, что создавало бы неоспоримый недостаток по сравнению с уникальным отображением между знаками единиц и единицами, что делало такое соглашение крайне нежелательным.
ИЛИ Mapper
1
Кто за пределами ниши компьютерного мира знает, что такое «кибибайт»? Кстати, только недавно Google был «прав». Это все еще очень живые дебаты о том, является ли килобайт 1000 или 1024 байта.
Джастин Крейча
9
Я единственный, кто немного расстроен, что это усечено до 61,0, а не округлено до 61,1?
Кристофер Олссон
22

Да, думать о Google, как Безумный Шляпник. Вы должны задать правильный вопрос. Или, может быть, эльф: иногда ваш ответ будет и да, и нет.

Байт в КиБ.  Килобайт компьютера;  или кибибайт.

Iraedei
источник
5

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

62563 / 1024 = 61.097KB

В качестве ярлыка многие люди и системы рассматривают КБ как 1000, поскольку Kilo - это префикс SI для 1000. Компьютерные ученые, однако, используют префикс для 2 ^ 10, который равен 1024.

EBGreen
источник
3

Большинство связанных с компьютером чисел используют двоичные префиксы, в отличие от системы СИ, которая использует десятичные префиксы. Это означает, что:

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

Это соответственно 1000 грамм и 1024 байта. 62563 / 1024 ~= 61так что винда права.

Однако не все, что связано с компьютером, основано на двоичных префиксах, и такое несоответствие часто приводит к недоразумениям. Эта страница Википедии описывает, какие префиксы используются для измерения разных вещей.

Один крайний случай - пропускная способность. Обычно он использует двоичные префиксы, когда они выражены в байтах в секунду, и десятичные префиксы, когда они выражены в битах в секунду. Так что это предложение верно:

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

Но этот ложный

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

Так как:

  • 1 КБ / с = 1024 Б / с
  • 1 кбит / с = 1000 бит / с

( связанный вопрос )

gronostaj
источник
1
Ошибка: 2 ^ 8 = 256 ---> Я полагаю, что должно быть 2 ^ 10 ;-)
Ханну
Страница обсуждения WP гораздо интереснее, чем сама статья (очень громкие дебаты о том, является ли КБ 1024 или 1000 байтов).
Джастин Крейча
Полоса пропускания должным образом выражена в Гц, где префиксы SI используют степени 10. Пропускная способность (скорость передачи данных, эквивалентная пропускная способность, умноженная на эффективность кодирования) неоднозначна в том, что первое определение приводит к тому (KB)/s, что в КБ используется двоичный префикс, а во втором - кГц или кбод с использованием десятичного знака. приставка.
Бен Фойгт