Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебное пособие часть 1.doc
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
882.18 Кб
Скачать

4.3 Равномерное алфавитное двоичное кодирование. Байтовый код

В этом случае двоичный код символов первичного алфавита строится цепочками равной длины, то есть со всеми знаками связано одинаковое количество информации, равное I(А) = log2N.

Формировать признак конца знака не требуется, поэтому для определения длины кода можно воспользоваться формулой К(А, 2)  Log2N. Приемное устройство просто отсчитывает оговоренное заранее количество элементарных сигналов и определяет символ в соответствии с таблицей кодов.

При этом недопустимы сбои: например пропуск одного элементарного сигнала приведет к сдвигу всей кодовой последовательности и неправильной ее интерпретации (проблема решается путем синхронизации или иными способами).

Примером равномерного алфавитного кодирования является телеграфный код Бодо, пришедший на смену азбуке Морзе. Исходный алфавит должен содержать не более 32 символов К(А, 2) = 5 = log232, т.е. каждый знак первичного алфавита содержит 5 бит информации и кодируется цепочкой из 5 двоичных знаков.

Условие N  32 выполняется для языков, основанных на английском алфавите (N = 26+1 = 27).

Однако в русском алфавите 34 буквы. По этой причине в один знак «сжимают» «е, ё» и «ь, ъ». После такого сжатия N=32, однако, не остается свободных кодов для знаков препинания, поэтому в телеграммах они отсутствуют или заменяются буквенными аббревиатурами. Это не является заметным ограничением, так как избыточность языка позволяет легко восстановить информационное содержание сообщения.

Избыточность кода Бодо для русского языка Q(ru, 2) = 0,148, а для английского – Q(en, 2) = 0,239.

Другим важным примером использования равномерного алфавитного кодирования является представление символов в компьютере.

Чтобы определить длину кода, необходимо начать с установления количества знаков в первичном алфавите. Компьютерный алфавит (С) должен включать:

  • 26 * 2 = 52 буквы латинского алфавита (прописные/строчные);

  • 33 * 2 = 66 букв русского алфавита (прописные/строчные);

  • 0 9 = 10 цифр;

  • знаки арифметических операций, препинания, спецсимволы - 20.

Получается общее число символов N = 148. Оценим длину кодовой цепочки К(С, 2)  log2148  7,21.

Поскольку длина кода – целое число, то K (C, 2) = 8.

Именно такой способ кодирования принят в компьютерных системах – любому символу ставится в соответствие код из 8 двоичных разрядов (8 бит).

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

Совокупность 8 связанных бит называется байт, а представление таким образом символа - байтовым кодированием.

Байт наряду с битом может использоваться как единица измерения количества информации в сообщении. Один байт соответствует количеству информации в одном знаке алфавита при их равновероятном распределении.

Этот способ измерения количества информации называется объемным.

Iвер  Iоб.

Именно байт принят в качестве единицы измерения количества информации в международной системе единиц СИ. 1 байт = 8 бит. Наряду с байтом для измерения количества информации используется более крупные производные единицы:

1 КБайт = 210 байт =1024 байт;

1 МБайт = 220 байт = 1024 Кбайт;

1 ГБайт = 230 байт = 1024 М байт;

1ТБайт = 240 байт = 1024 Г Байт (Терабайт).

Использование 8-битных цепочек позволяет закодировать 28 = 256 символов, что превышает оцененное выше N, и, следовательно, дает возможность употребить оставшуюся часть кодовой таблицы для представления дополнительных символов.

Однако недостаточно только условиться об определенной длине кода. Ясно, что способов кодирования очень много. По этой причине для совместимости технических устройств и обеспечения возможности обмена информацией между многими потребителями требуется согласование кодов.

Подобное согласование осуществляется в форме стандартизации кодовых таблиц.

В персональных компьютерах и телекоммуникационных системах применяется международный байтовый код ASCII (American Standard Code for Information Interchange - американский стандартный код обмена информацией).

Он регламентирует коды первой половины кодовой таблицы (номера кодов от 0 до 127, то есть первый бит всех кодов 0). В эту часть попадают коды прописных и строчных английских букв, цифры, знаки препинаний и математических операций, а также некоторые управляющие коды (номера от 0 до 31).

Вторая часть кодовой таблицы - она считается расширением основной - охватывает коды в интервале от 128 до 255 (первый символ -1). Она используется для представления символов национальных алфавитов, а также символов псевдографики. Для этой части также имеются стандарты (например, для русского языка это КОИ-8 и другие).

Как и в основной таблице, так и в ее расширении коды букв и цифр соответствуют их лексикографическому порядку (то есть порядку следования в алфавите).

В настоящее время находит все более широкое применение еще один международный стандарт кодировки - Unicode. Его особенность в том, что в нем использовано 16-битное кодирование (то есть 2 байта на символ). Это позволяет включать в первичный алфавит 65536 знаков.

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