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

Оперативная память компьютера состоит из элементов, которые могут находиться только в одном из двух состояний: включено – выключено, да – нет, 1 – 0. Поэтому информацию, которую требуется сохранить в памяти, предварительно нужно закодировать двоичным кодом. Для каждого вида информации (числа, символы, команды) применяются свои правила кодирования.

В зависимости от применяемого способа кодирования внутреннее (в оперативной памяти) представление информации может иметь разную длину.

Может потребоваться кодировать информацию не двоичным, а каким-либо другим кодом, который используется в памяти вычислительного устройства.

Нужно уметь определять длину закодированного сообщения или вычислять минимальную длину кода для одного элемента данных. Эти вычисления базируются на определенном соотношении.

Введем обозначения:

S – число возможных состояний одного разряда кода. Для памяти компьютера S=2;

D – минимальная длина кода, достаточное количество разрядов кода для кодирования некоторого набора значений данных. Например, для кодирования символов в памяти компьютера применяются значения D, равные 8 (набор кодов ASCII) или 16 (набор кодов Unicode);

N – количество разных кодов, которые можно получить при заданных S и D.

Между этими величинами выполняется соотношение: N = SD. Оно является основой для вычислений.

Например, нужно закодировать набор из 100 разных значений с помощью устройств, которые могут находиться в трех разных состояниях. Значит, известно, что N=100, S=3. Требуется найти такое D, чтобы общая длина закодированного сообщения была минимальной.

Преобразуем соотношение таким образом, чтобы выразить неизвестную величину: D = logS N. Поскольку количество разрядов должно быть целым, следует округлить вычисленное значение до ближайшего целого сверху. Итак, D = log3 100 → 5.

A9 (2 мин)

Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г и Д, используется неравномерный двоичный код, позволяющий однозначно декодировать двоичную последовательность. Вот этот код: А – 00, Б – 01, В – 100, Г – 101, Д – 110. Можно ли сократить для одной из букв длину кодового слова так, чтобы код по-прежнему можно было декодировать однозначно? Коды остальных букв меняться не должны.

Выберите правильный вариант ответа.

1) для буквы Д – 11

2) это невозможно

3) для буквы Г – 10

4) для буквы Д – 10

РЕШЕНИЕ

При неравномерном кодировании важную роль играет первый символ кода – по его значению может быть вычислена длина кода. Например, в данном задании код, начинающийся с 0, имеет длину 2, что позволяет однозначно декодировать последовательность.

Допустим, что первый символ кода, равный 1, позволяет использовать как код длиной 3, так и код длиной 2. Можно ли будет определить при декодировании, какую длину кода следует использовать?

Для решения этого вопроса рассмотрим второй символ кода. Заметим, что если второй символ кода равен 0, то длина кода должна быть равна 3, иначе буквы В и Г невозможно однозначно декодировать. Если второй символ кода равен 1, то длину кода можно считать равной 2. Коды будут различными, что позволит выполнить однозначное декодирование.

Ответ: 1.

A11 (3 мин)

В некоторой стране автомобильный номер длиной 5 символов составляют из заглавных букв (задействовано 30 различных букв) и любых десятичных цифр в любом порядке. Каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байт (при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством бит).

Определите объём памяти, отводимый этой программой для записи 50 номеров.

1) 100 байт

2) 150 байт

3) 200 байт

4) 250 байт

РЕШЕНИЕ

  1. Для составления номера используются 30 + 10 = 40 разных символов. Каждый символ кодируется двоичным кодом. Применим соотношение: N = SD. Здесь N = 40, S=2. Следовательно, D = 6, т.е. длина кода каждого символа номера равна 6.

  2. Номер содержит 5 символов, значит длина двоичного кода номера 6 * 5 = 30 бит. Поскольку номер записывается целым количеством байтов, то вычисляем 30 div 8 = 3 и еще один не полностью заполненный байт. Итак, для записи одного номера требуется 4 байта, а для 50 номеров – 4 * 50 = 200 байт.

Ответ: 3.

B4 (2 мин)

Азбука Морзе позволяет кодировать символы для сообщений по радиосвязи, задавая комбинацию точек и тире. Сколько различных символов (цифр, букв, знаков пунктуации и т. д.) можно закодировать, используя код азбуки Морзе длиной не менее четырёх и не более пяти сигналов (точек и тире)?

Ответ: ___________________________.

РЕШЕНИЕ

Применим соотношение N = SD. Здесь S=2 (точка и тире), D=4 и D=5. Вычислим N = 24 + 25 = 48.

Ответ: 48.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]