Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf_selfwork.doc
Скачиваний:
18
Добавлен:
27.11.2016
Размер:
356.35 Кб
Скачать

1.3. Правило перевода дробных чисел

Отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются.

Пример 1.15. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.

Представим исходное число как сумму целого числа и правильной дроби:

19,847=19+0,847.

Как следует из примера 1.2, 19=1316; а в соответствии с примером 1.9 0,847=0,D8D16.

Тогда имеем:

19+ 0,847=1316+0,D8D16=13,D8D16.

Таким образом, 19,847=13,D8D16.

2. Построение прямых кодов и кодирование дискретного сигнала

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

Решение задачи

Пусть фамилия, имя и отчество студента Петров Иван Васильевич. Тогда исходным текстом является текстпетровиванвасильевич, а алфавит - это множество символов {п, е, т, р, о, в, и, а, н, с, л, ь, ч}.

Для построенияпрямых кодов выполним следующую последовательность действий:

  1. выполним лексикографическое упорядочение своего алфавита (графа 1 таблицы 2.1):

Таблица 2.1

Символ алфавита

Номер

по порядку

Прямой код

1

2

3

а

0

0000

в

1

0001

е

2

0010

и

3

0011

л

4

0100

н

5

0101

о

6

0110

п

7

0111

р

8

1000

с

9

1001

т

10

1010

ч

11

1011

ь

12

1100

  1. пронумеруем символы алфавита, начиная с нуля (графа 2 таблицы 2.1),

  2. определим мощность N алфавита (т.е. число символов алфавита): N = 13,

  3. используя комбинаторный подход к измерению информации, рассчитаем требуемый размер кода, достаточный для кодирования всех символов исходного алфавита, по формуле: l = [log2 N], где скобки[ ]означают округление результата до ближайшего большего целого числа. Для нашего примераl = [log2 13] = [3,7] = 4,

  4. каждый номер символа представим четырехразрядным (как следует из шага 4) двоичным числом - получим код постоянной длины (графа 3 таблицы 2.1).

Кодированиеисходного текста дает (для простоты закодируем отдельно фамилию, имя, отчество)1:

петров 0111 0010 1010 1000 0110 0001

иван0011 0001 0000 0101

васильевич 0001 0000 1001 0011 0100 1100 0010 0001 0011 1011

3. Построение кодов с учетом частоты символов и кодирование дискретного сигнала

Задание к работе: построить для алфавита, полученного в задании 2, двоичные коды, учитывающие частоту символов. Расчет частоты выполнить поисходному тексту. Закодировать полученным кодомисходный текст.

Решение задачи

Для построения требуемых кодов выполним следующую последовательность действий:

  1. для расчета частот символов алфавита (графа 1 таблицы 3.1) определим число появлений miкаждого i-го символа алфавита в исходном тексте (графа 2 таблицы 3.1):

Таблица 3.1

Символ

алфавита

Число

появлений mi

1

2

а

2

в

4

е

2

и

3

л

1

н

1

о

1

п

1

р

1

с

1

т

1

ч

1

ь

1

  1. для определения размера кода вновь используем формулу l=[log2 N] приN=13. Получаем:l = [logh 13] = [3,7] = 4,

  2. упорядочим список символов алфавита А по убыванию частоты. Получим графы 1,2 таблицы 3.2 ,

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

Таблица 3.2

Символ

алфавита

Число

появлений mi

Код

1

2

3

в

4

0000

и

3

0001

а

2

0010

е

2

0100

л

1

1000

н

1

1010

о

1

1001

п

1

0110

р

1

0101

с

1

0011

т

1

1100

ч

1

1011

ь

1

1101



Кодирование исходного текста полученным кодом дает результат (отдельно закодированы фамилия, имя и отчество):

петров0110 0100 1100 0101 1001 0000

иван0001 0000 0010 1010

васильевич0000 0010 0011 0001 1000 1101 0100 0000 0001 1011

Соседние файлы в предмете Информатика