МЕНЮ
Гостевая книга
Форум
|
БИТЫ, БАЙТЫ, СЛОВА
Если вы читали предыдущую статью, то вы уже можете перевести число
из десятичной системы в двоичную. Например, 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. Нарисуем:
Адрес | Логично | Нелогично |
1 | 12 | 90 |
2 | 34 | 78 |
3 | 56 | 56 |
4 | 78 | 34 |
5 | 90 | 12 |
Видите, самые старшие цифры в первом случае (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 килобайта - "мебибайт". Дальше - "гибибайт" и "тебибайт".
Стандарт не прижился и практически не используется в настоящее время,
так как программисты уже привыкли к старым единицам измерения, и просто
послали стандарт куда подальше.
Назад
|