Программирование на Java | Модемы | Дипломы по радиотехнике и связи |
Модемы и сетевое оборудование
Данные
Теперь давайте разберемся, из чего состоят цифровые сигналы и как с их помощью можно передавать информацию. Здесь вы также узнаете о стандарте ASCII, о том, чем текстовые ASCII-файлы отличаются от бинарных и какие проблемы возникают из-за этого при пересылке последних по телекоммуникационным каналам.

Биты и байты
Тех, кто привык измерять информацию в байтах (килобайтах, мегабайтах), возможно, удивит, что основной единицей для измерения информации является бит. Узнав же, что бит — всего лишь одна восьмая часть байта, можно и вообще встать в тупик — какой смысл в эдакой крошечной единице?
Что ж, действительно, измерять объем винчестеров (особенно последних моделей) в битах довольно неудобно. Но зато бит замечателен тем, что он представляет собой минимальное количество информации, которое возможно передать или принять за од ин прием.
Представим себе паралитика, который все слышит и понимает, но сам может в ответ лишь мигать (или не мигать) одним глазом. Этот несчастный — довольно точная модель элемента любого электронного устройства, и самое удивительное заключается в том, что он одним своим веком может сообщить вовне любую информацию (конечно, за соответствующее время).
Разберемся, как же это происходит. Допустим, мы знаем, что наш подопытный строит свои сообщения из букв алфавита. Поэтому мы сразу задаем ему вопрос: «Первая буква — а?». Он не мигает, что означает «нет». Следующий вопрос: «Первая буква — б?» Снова «нет». «В?» — «Нет». И так далее — до тех пор, пока он наконец не мигнет, что будет означать «да».
Итак, первая буква нам известна. Передохнем и заодно договоримся о терминах: битом как раз и называется то количество информации, которое было нам сообщено одним актом подмигивания либо неподмигивания — т. е. ответом на вопрос, на который может быть только два ответа, «да» или «нет». (Отсюда, кстати, и название: bit означает «binary digit», «двоичная цифра».)
Первую букву, таким образом, мы узнали, сделав определенное число попыток, т. е. приняв определе
нное число бит. В нашем примере, как понятно, это число было равно номеру буквы в алфавите. Но есть и более быстрый, хотя и не такой простой способ. Зададим вопрос: «Номер этой буквы в алфавите больше 16?» Допустим, «да». Тогда «...больше 24?» — «Нет». Значит, буква расположена между «П» (16-я буква алфавита) и «Ч» (24-я). Продолжая тем же манером (в математике это называется «методом половинного деления»), можно распознать букву гораздо быстрее. Те, у кого в школе было все в порядке с математикой, без труда сообразят, что для передачи этим способом любой буквы алфавита потребуется ровно loga 32 = 5 бит (в русском алфавите, не считая ё, ровно 32 буквы).
Именно так информация передается внутри компьютера, а также — что особенно важно для нас — и между компьютерами. Разница лишь в том, что там никто ничего не спрашивает (это и не нужно, так как вопросы всегда одни и те же), а все только отвечают друг другу: «да нет да да нет нет да...» или, в более привычном для программистов виде, «1011001...»
Цифровые сигналы — потоки ноликов и единиц — посылаются, принимаются, хранятся и обрабатываются разнообразными «паралитиками»: процессором, памятью, дисковыми накопителями и прочими устройствами, образуя грандиозную картину работающего компьютера. Правда, многие из этих действующих лиц для скорости моргают сразу несколькими глазами (например, 8-ю или 16-ю), но об этом мы поговорим чуть ниже (стр. 57).
Конечно, удобнее не заглатывать длинные ленты битов целиком (так можно и подавиться), а разбить их на куски подходя-











ASCII
щего размера. А так как основным видом информации для всех нас являются тексты, было решено разрезать потоки битов на кусочки, как раз достаточные для передачи одного символа. Правда, пяти бит (как в нашем примере) для этого мало — помимо букв, есть ведь еще и пробелы, и цифры, и знаки препинания, да и о других алфавитах не мешает подумать, — и потому размер кусочка был выбран равным 8 бит, что и составляет один байт (англ. byte — «кусочек»). Байт позволяет закодировать любой из 28 = 256 символов. Какие это именно символы
и как они кодируются — к этому мы сейчас и перейдем.


Выгоды стандартизации общеизвестны. И ничего удивительного, что такая фундаментальная для компьютеров вещь, как кодировка символов (иными словами, соответствие между символами и восьмибитовыми последовательностями — байтами), была приведена к общему знаменателю довольно давно. Стандарт этот называется ASCII (American Standard Code for Information Interchange, «Американский стандартный код обмена информацией»).
К сожалению, исходный стандарт ASCII жестко задает лишь одну половину таблицы кодировки — первые 128 байт (рис. 2), у которых старший (крайний слева) бит равен нулю. Вторая половина таблицы была оставлена на откуп разработчикам компьютеров и операционных систем, которые не замедлили воспользоваться этим и создали множество расширений стандартной таблицы ASCII. Байтами в диапазоне 128—255 в этих расширенных таблицах кодировались, как правило, всевозможные символы не первой необходимости — буквы с диакритическими знаками из разных европейских языков, палочки и крестики псевдографики, обозначения валют, символы типа \ или J и т. п.
teasernet_blockid = 181685; teasernet_padid = 62962; />
исходный стандарт ASCII
множество расширений стандартной таблицы ASCII
К сожалению, одной расширенной таблицы ASCII, которая стала бы стандартом для всех, так и не появилось. Во-первых, из соображений конкуренции каждый хоть сколько-нибудь известный производитель компьютеров или программ старался быть «не как все» (необходимость унификации и совместимости друг с другом компьютерная индустрия осознала сравнительно недавно). Вторая же причина — вполне объективная: предусмотреть во второй половине таблицы запас символов на все случаи жизни просто невозможно. Тем более — если речь идет о локализованных версиях программ, которые должны поддерживать не только латиницу, но и алфавит какого-то другого языка. Многие европейские языки обходятся одной, общей для них расширенной таблицей (рис. 3), содержащей все возможные буквы с диакритическими знаками и лигатуры из французского, немецкого и остальных языков с алфавитом на основе латиницы

< пред след >
вернуться к содержанию
вернуться к списку источников

перейти на главную страницу