МЕНЮ

 

Гостевая книга

Форум

 

 

БИТЫ, БАЙТЫ, СЛОВА

            Если вы читали предыдущую статью, то вы уже можете перевести число из десятичной системы в двоичную. Например, 5 - это 101, а 11 - это 1011. В одном числе 3 "цифры", в другом 4. Логично предположить, что каждое число передается в компьютере по своему проводу. Следовательно, первое число передается по трем проводам, а второе по четырем? В таком случае, что передается в первом случае по четвертому проводу?
            На самом деле компьютер думает всегда группами по 8 "цифр". И называется эта группа - "байт" (а отдельная цифра - "бит"). То есть, число 5 компьютер передаст по 8 проводам как 00000101, а число 11 - как 00001011.
            Это все хорошо, скажете вы, но как компьютер передаст, например, число 512 (100000000)? Там 9 "цифр", или "бит"? Компьютер просто передаст это число как два байта - первый 00000001, второй 00000000. То есть за два раза. Хотя новые модели компьютеров и так умеют передавать до 8 байт за один раз. Если вы захотите послать более длинное число - 1011110101010111101010101, то оно передастся по очереди так: 00000001, 01111010, 10101111, 01010101.
            Память компьютера тоже состоит из байт, и, соответственно, вышеприведенное монстрообразное число так же должно быть записано в четырех последовательных ячейках памяти. Но как? Слева-направо (как приведено выше), или справа-налево (01010101, 10101111, 01111010, 00000001)? Вы можете сказать, что по-моему слева-направо достаточно логично, все к этому привыкли, и зачем может кому-то понадобится все делать наоборот?
            На самом деле не все так просто. Слева-направо, конечно, логично (и иногда из-за этой логичности - такой способ и используют). Но чаще бывает наоборот, и пишут числа справа-налево. Почему? Потому что тогда младшие разряды числа попадают в меньшие адреса памяти, а большие в большие. Непонятно? Смотрите:
            У нас есть обычное наше число 1234567890. Допустим в одну ячейку памяти входит 2 цифры. Тогда наше число можно записать либо как 12-34-56-78-90, либо как 90-78-56-34-12. Нарисуем:

АдресЛогичноНелогично
11290
23478
35656
47834
59012

            Видите, самые старшие цифры в первом случае (1 миллиард, двести миллионов) оказались в самом маленьком адресе памяти (первом). А самые маленькие цифры (девяносто) - в самом старшем адресе памяти (пятом)
            А если мы запишем "нелогично", то как раз старшие адреса (миллиарды и миллионы) записаны в старших адресах (пятом), а девяносто - в младшем адресе - в первом. Вот поэтому этот вариант и используют.

            Теперь пойдем дальше. Мы знаем, что одна цифра - это "бит", 8 бит - это байт. Что дальше? А дальше слово - "2 байта", двойное слово "4 байта". Дальше идет "8 байт", особого русского названия у него нет, но по-английски его называют QWORD. Обратите внимание, что называются только степени двойки (два, четыре, восемь байт)
            Некоторая трудность возникла с большими единицами измерения. Если у вас есть грамм - то логично, что 1000 грамм - килограмм. А если у вас есть байт, то логично, что должен быть килобайт. Логично? Логично. Только вот 1000 байт - не степень двойки. А вы помните, что программисты дают названия только степеням двойки. Так вот - программисты назвали килобайтом 1024 байта. Несколько нелогично, но зато 1024 - ровно 2 в 10 степени.
            Соответственно произошли "мегабайт" - 1024 килобайта, "гигабайт" - 1024 мегабайта, "терабайт" - 1024 гигабайта. Есть единицы измерения и дальше, и вы их найдете в любом справочнике, но потребности в них пока нет, так что их практически не используют.
            Всех долгое время устраивало это несоответствие - между 1000 и 1024, вплоть до 2002 года. Потом МЭК (международная электротехническая комиссия) выпустила стандарт МЭК 60027-2, в котором обязала всех считать, что килобайт - 1000 байт. А вовсе не 1024. А 1024 - это особая единица, и называется "кибибайт". Соответственно мегабайт - 1000 килобайт. А 1024 килобайта - "мебибайт". Дальше - "гибибайт" и "тебибайт".
            Стандарт не прижился и практически не используется в настоящее время, так как программисты уже привыкли к старым единицам измерения, и просто послали стандарт куда подальше.

Назад  
 

Хостинг от uCoz