1MiB = 1024KiB = 2^10. Независимо от това, защо не използвате само 1000 байта вместо 1024 за изчисляване на размера? [затворено]

1024 = 2 на степен 10. Компютрите използват двоична система, където основата е 2 (0 и 1). Хората използват десетична система, където основата е 10. Така че, ако имам 1 байт, който съдържа 8 бита в съвременните компютри, мога да представя до 256 различни състояния, възможности, стойности или други подобни. 10 бита могат да представят 1024 състояния. Е..и какво? Какво общо има с паметта? Мисля, че размерът на паметта е свързан с броя битове/байтове, а не с броя на състоянията, които битовете и байтовете могат да представляват. Объркан съм. Каква е техническата полза от мисленето, че 1K(i)B = 1024, а не 1000 байта?

Мисля, че имам нужда от повече техническо обяснение, може би нещо свързано с това как работи процесорът или как данните всъщност се съхраняват на твърдия диск. Не просто: компютърът използва двоична форма, така че ние използваме 2^10, а не 10^2.


person Timur Fayzrakhmanov    schedule 12.06.2015    source източник
comment
Направихте ли си труда да търсите в Google този въпрос: защо kb е 1024 байта? Има много отговори...   -  person David Zemens    schedule 12.06.2015
comment
Да, вече ги прочетох всичките   -  person Timur Fayzrakhmanov    schedule 12.06.2015
comment
stackoverflow.com/questions/19819763 /   -  person David Zemens    schedule 12.06.2015
comment
Благодаря, но не е това, което търся.   -  person Timur Fayzrakhmanov    schedule 12.06.2015
comment
Когато компютърните учени поискаха префикси да опишат голям брой байтове, те решиха да заемат префиксите, използвани в метричната система... тъй като 1024 = 2^10 е много близо до 1000 = 10^3, тези учени решиха да нарекат 1024 байта килобайт и да го опишем като около 1000 байта. линки   -  person David Zemens    schedule 12.06.2015
comment
@HighPerformanceMark, да, прав си - грешката е моя.   -  person Timur Fayzrakhmanov    schedule 12.06.2015


Отговори (3)


Какво общо има с паметта?

Това е свързано с адресирането на паметта, което също се извършва с помощта на двоични числа.

На много високо ниво типичният чип с памет работи по следния начин: има три вида изводи - адресни изводи, изводи за данни и контролни изводи. Когато процесорът трябва да чете или записва памет, той настройва комбинация от нули и единици на адресните щифтове на чипа с памет, изпраща сигнал за четене или запис към контролните щифтове, изчаква малко и след това чете или записва данни, използвайки пинове за данни.

Комбинацията от нули и единици, поставени върху адресните изводи, се нарича адрес на паметта. Това е двоично число в диапазона от нула до 2n, където n е броят на адресните пинове.

Ето как правомощията на две влизат в измерването на капацитета на паметта. За удобство, 1024 беше много близо до 1000, така че "K" беше заимствано, за да означава 1024, когато говорим за размер на паметта.

Имайте предвид, че измерването на размери на данни с помощта на двоични кратни не е универсално. Например, капацитетът на твърдите дискове често се цитира с помощта на десетични, а не на двоични кратни, тъй като твърдите дискове по своята същност не използват двоично адресиране (и броят на десетичните гигабайти е по-висок, което помага за маркетинга на продукта).

person Sergey Kalinichenko    schedule 12.06.2015

Какво общо има с паметта?

Очевидно всички тези размери са степени на 2. Причината да са 1024 и 1024^2 е, че това е точно описание на това, което получавате.

Лесно е да адресирате паметта, когато използвате градивните елементи на компютъра. Тези градивни елементи са адресни пинове и наличието на повече съответства на степени на 2.

Въпреки това можем просто да го наречем „1000“. Просто е по-малко точно в повечето случаи и следователно има по-малко смисъл в общия случай. Все пак има изключения: повечето твърди дискове всъщност използват степен 10 за капацитет. Забелязвате, че когато го поставите в компютъра си, и "24" изведнъж започва да прави разлика. :-)

person atlaste    schedule 12.06.2015

Управлението на паметта исторически се извършва в степени на две, тъй като степените на две могат да се извършват с помощта на битови смени. Ако системата има 1024 страници, хардуерът може да идентифицира страницата, просто извличайки (или премествайки) битове.

При дисковите устройства 1K е 1000 байта. Това беше направено с маркетингова цел. Производителите на дискови устройства биха могли да рекламират малко по-големи капацитети. Това е вярно, въпреки че устройствата работят с блокове, чиито размери са степени на 2.

person user3344003    schedule 12.06.2015
comment
Хм..това е добре. Първоначално въпросът ми беше повдигнат, когато открих, че мога лесно да идентифицирам броя байтове, например, на файл с 32 MiB, използвайки bit shift (32 ‹‹ 20). Бихте ли обяснили Ако системата има 1024 страници, хардуерът може да идентифицира страницата, като просто извлича (или измества) битове. в повече детайли? Всичко, което знам за страницата, е най-малката единица данни от виртуалната памет на операционната система, използвана за управление на паметта. - person Timur Fayzrakhmanov; 12.06.2015
comment
Страницата е основната единица за управление на паметта. Различните системи използват различни размери на страниците. Старият VAX използваше 512 байта. Сега 4K е най-често срещаният размер на страницата. Ако приемем, че имате, както във вашия пример, 1K страница (10 бита), което означава, че най-ниските 10 бита от адреса определят отместването в страница, а останалите битове (22 или 54) указват страницата. Хардуерът използва тези битове, за да преобразува логически адреси във физически адреси. - person user3344003; 13.06.2015
comment
Английският ми не е много добър.. Не мога да схвана идеята ви. Вие казвате: както във вашия пример 1K страница (10 бита [може би 1000 бита?]), което означава най-малките 10 бита от адреса [какво означава „най-малките битове от адрес“?]. Как тренираш 22 и 54? Съжалявам, но наистина е трудно да те разбера( - person Timur Fayzrakhmanov; 13.06.2015
comment
Ако имате 1K страници, това отнема 10 бита, за да представи байт в рамките на страницата. Ако имате 32-битов адрес, оставете 22 бита, за да посочите страницата. Ако имате 64-битов адрес, това оставя 54 бита за указване на страницата. Адрес, след това комбинация от избрана страница и байт в избраната страница. - person user3344003; 14.06.2015