Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник задач по дисциплине «Информатика» для ВУЗов. Методические указания к проведению практических занятий по дисциплине «Информатика», для студенто
.pdf
31
Диапазон представления чисел с плавающей точкой значительно
больше диапазона представления чисел с фиксированной точкой. Однако
быстродействие ЭВМ при обработке чисел с плавающей точкой гораздо
ниже, чем при обработке чисел с фиксированной точкой. Этим объясняется
одновременное существование двух форм чисел.
Последовательность нескольких битов или байтов называют полем
данных [13]. В ЭВМ используют по
ля постоянной и переменн
ой длины.
Перечислим поля постоянной длины: полуслово — 1 байт; слово —
2 байта; двойное слово — 4 байта; расширенное слово — 8 байт.
Поля переменной длины могут иметь любой размер от 1 до 256 байт.
При этом поле должно состоять из целого числа байтов.
Пример 1. Записать число -193
= -110000012 в формате слова со
10
знаком и фиксированной точкой.
Решение.
N разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Число 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1
Примечание.
В старшем разряде (пятнадцатом) указан знак числа.
Для чисел с плавающей точкой под знак и порядок отводится восемь
старших бит числа.
Для представления как положительных, так и отрицательных порядков применяют смещённый порядок. При этом машинный порядок Мр
формируют со смещением на 64 разряда по отношению к фактическому
порядку p: Мр = p + 64. Это сделано для того чт
обы не отводить
отдельный
разряд под знак порядка. При фактическом порядке p, равном нулю, машинный порядок Мр равен 64, а при фактическом порядке равном +63D
машинный порядок равен своему максимальному значению 127D. Для отрицательного порядка -64D машинный порядок равен нулю. Таким образом, и положительные и отрицательные порядки пре
дставляют только по-
ложительными числами.

32
Пример 2. Записать число -193
в формате двойное слово и пла-
10
вающей точкой.
Решение.
Переведём десятичное число в двоичную СС.
= -110000012 = -0.11000001·28.
-193
10
Заметим, что целая часть мантиссы должна быть равна нулю, а первый знак после точки должен быть равен единице.
Здесь мантисса m = -0.11000001, фактический порядок p = 8
.
1000
2
Машинный порядок: Мр = p + 64 = 1000
+ 10000002= 10010002.
2
=
10
Двоично-десятичная система счисления получила большое распространение в современных ЭВМ ввиду лёгкости перевода в десятичную систему счисления и обратно. Она используется при решении задач учётностатистического характера. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами (тетрадами) и в
таком виде записываются последовательно друг за др
Двоично-десятичные числа мо
гут быть представлены в ЭВМ полями
угом.
переменной длины в так называемых упакованном и распакованном форматах.
Пример 3. Записать десятичное число 9703 в двоично-десятичной
системе счисления.
Решение.
1001 0111 0000 0011
Таким образом, перевод десятичного числа 9703D в двоичнодесятичную СС дал такой результат: 1001011100000011. Этот перевод напоминает перевод шестнадцатеричных чисел в двоичную СС,
В упакованном формате для каждой десятичной цифры отводится по
4 двоичных разряда, при этом знак числа кодируется в крайнем правом полубайте числа. Принят следующий порядок кодировки: код 1100 означает
знак "+", а 110
Стру
1 — знак "-".
ктура поля двоично-десятичного упакованного формата:

33
Цф Цф ... Цф Знак
Здесь и далее: Цф — цифра, Знак — знак числа.
Упакованный формат используется обычно в ЭВМ при выполнении
операций сложения и вычитания двоично-десятичных чисел.
Пример 4. Представить число -193D в упакованном формате.
Решение.
0001 1001 0011 1101
В распакованном формате для каждой десятичной цифры отводится
по целому байту, при этом старшие полубайты (зоны) каждого байта (кроме самог
о младшего) заполняются кодом
0011, а в младших полубайтах
обычным образом кодируются десятичные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для указания кода знака
числа.
Структура поля распакованного формата:
Зона Цф Зона Цф … Зона Цф Знак Цф
Распакованный формат используется при вводе-выводе информации
в ЭВМ, а также при выполнении операций умножения и деления двоичнодесятичных чисел.
Пример 5. Представить число -193D в распакованном формате.
Решение.
0011 0001 0011 1001 1101 0011

34
4. Задания для выполнения практической работы
«Представление данных в ЭВМ»
4.1. Записать десятичное число А в формате слова со знаком и
фиксированной точкой в машинное слово заданной разрядности.
Таблица 4.1.
Задача Число А Разрядность
машинного
слова
1 100 8
2 -110 8
3 120 8
4 -80 8
5 60 8
6 -111 8
7 101 8
8 -91 8
9 87 16
10 -8000 16
11 9000 16
12 -10000 16
13 16000 16
14 -777 16
15 2015 16
16 -999 16

35
4.2. Записать десятичное число А в формате с плавающей точкой со
смещённым порядком. Для записи порядка использовать 7 разрядов, а для
записи мантиссы – 8 разрядов. Один разряд использовать для записи знака
числа
Таблица 4.2.
Задача Число А Разрядность
машинного
слова
1 7 16
2 -12 16
3 15 16
4 -24 16
5 31 16
6 -45 16
7 63 16
8 -67 16
9 127 16
10 -130 16
11 135 16
12 -150 16
13 200 16
14 -220 16
15 250 16
16 -255 16
Домашнее задание
1. Записать отрицательное целое число, состоящее из четырёх по-
следних цифр зачётки, в формате с фиксированной точкой в машинное
слово, состоящее из 16 разрядов.
2. Записать положительное число в форме с плавающей точкой. Ман-
тисса числа образована из трёх последних цифр зачётки. Порядок числа
состоит из первой и второй цифр
р машинного слова выбрать минимальным, но достаточным
Разме
ы зачётки.
для размещения числа.

36
Практическая работа № 5
«Сжатие информации методом RLE»
1. Цель работы
Получить представление о методе сжатия информации путём учёта
повторений.
2. Связь с другими темами практических работ
Данная практическая работа опирается на первую практическую работу и необходима для понимания принципа работы прикладного программного обеспечения. Работа совместно с последующими работами позволяет понять основные принципы кодирования информации.
3. Теоретические сведения и расчётные формулы
Идея архивации методом RLE состоит в учёте того факта, что в файлах часто встречаются несколько подряд идущих одинаковых байтов, а некоторые последовательности байтов повторяются многократно. При архивации такие места файла можно заменить командами вида «повторить данный байт n раз» или «взять часть данных длиной k байтов, которая вс
лась m байтов назад». Такой алгоритм
Length Encoding — кодирование путём учёта повторений).
Понять идею этого метода упаковки позволяет следующий анекдот.
Один в прошлом известный полководец решил написать достаточно
объёмные мемуары. Составленные воспоминания звучали примерно так.
«Утром я вскочил на своего коня и помчался в штаб ар
коня издавал
цок-цок-цок-цок …». Через двое суток я соскочил с коня и вошёл в штаб».
Для увеличения объёма «литературного произведения» словосочетание «цок» было написано «писателем» на двухстах страницах. Очевидно,
что информативность «мемуаров» не изменилась бы, если вмес
стра
ниц перечисления цокающих звуков было бы указано: «Затем следуют
64 000 раз звуки «цок-цок».
Рассмотрим детально основную идею метода архивации RLE.
Упакованная методом RLE последовательность состоит из управляющих байтов, за которыми следуют один или несколько байтов данных.
При этом если старший бит управляющего байта равен 1, то следующий за
ним байт дан
указано в оставшихся 7 битах управляющего байта.
и звуки «цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-цок-
ных нужно по
вторить при распаковке столько раз, сколько
архивации носит имя RLE (Run
мии. Подковы
треча-
то 200

37
Например, управляющий байт 10001001 говорит, что следующий за
ним байт нужно повторить 9 раз, так как 1001
= 910.
2
Если старший бит управляющего байта равен 0, то при распаковке
архива нужно взять несколько следующих байтов без изменений. Число
байтов, которые берутся без изменений, указывается в оставшихся 7 битах.
Например, управляющий байт 00000011 говорит, что следующие за ним 3
байта нужно взять без изменений.
Рассмотрим пример архивации методом RLE.
Пример 1.
Выполнить сжатие сообщения «ИНН 22223133333» методом RLE.
Решение
Текст Десятичный ко
Двоичный код Ар
хив
д
(таблица CP-1251)
И 200 11001000 00000001
Н 205 11001101 11001000
Н 205 11001101 10000010
Пробел 32 00100000 11001101
2 50 00110010 00000001
2 50 00110010 00100000
2 50 00110010 10000100
2 50 00110010 00110010
3 51 00110011 00000010
1 49 00110001 00110011
3 51 00110011 00110001
3 51 00110011 10000101
3 51 00110011 00110011
3 51 00110011
3 51 00110011
Таким образом, пятнадцать байт исходного текста сжаты до трина-
дцати байт. Коэффициент сжатия в данном случае составил:
15
K
c
13
.154,1
Для облегчения проверки правильности формирования архива желательно вычислить контрольную сумму. Для её формирования нужно выполнить операцию Исключающее ИЛИ над одноимёнными разрядами архива. В данном примере контрольная сумма в двоичной системе счисления
составила 10100111. Перевод в шестнадцатеричную СС даёт число А7Н.

38
4. Задания для выполнения практической работы
«Сжатие информации методом RLE»
4.1. Выполнить сжатие заданного текста методом RLE. Вы-
числить коэффициент сжатия и контрольную сумму.
Табл. 5.1.
Домашнее задание
Выполнить сжатие номера зачётки методом RLE.
Задача Текст
1 Кредитка 2235555666122
2 Паспорт 25700000333215
3 ИНН 78888255555488856
4 Пароль 177775556666612
5 Пароль abcWWWWZZZq
6 Автомобиль 78999994441
7 Алло это 4565555544488
8 Удостоверение 265444111
9 Счёт 95122244445333333
10 Касса 1478885555233333
11 Прошло 11100002 секунд
12 Пролетели 82223333352 м
13 Вес 1597555553333331 кг
14 Цена 2598888666611 коп
15 Мощность 3574444555 Вт
16 Выиграл 10000555 рублей

H
H
39
Практическая работа № 6
«Сжатие информации методом Шеннона-Фано»
1. Цель работы
Получить представление о методе сжатия информации путём ис-
пользования префиксных кодов.
2. Связь с другими темами практических работ
Данная практическая работа опирается на первую и пятую практические работы Сборника и необходима для понимания принципа работы
прикладного программного обеспечения. Работа совместно с последующими работами позволяет понять принципы кодирования информации.
3. Теоретические сведения и расчётные формулы
Задачу экономного кодирования сообщений источника, имеющего
отличное от равномерного распределения вероятностей появления символов его алфавита, позволяют решить неравномерные префиксные коды.
Рассмотрим принцип построения кода методом Шеннона-Фано. Построение кода основываются на статистических свойствах источника сообщений. При этом часто встречающимся символам алфавита ставят в соответствие короткие кодовые ко
мбинации. Из-за того, что разн
лам алфавита соответствуют кодовые комбинации разной длины, такие
коды называют неравномерными, префиксными. Префиксным кодом называется множество таких двоичных последовательностей, что ни одна
последовательность в этом множестве не является началом другой последовательности.
В качестве примера сжатия методом Шеннона-Фано рассмотрим
процедуру архивации сообщения «ИН
Н 6373
22757237». Данный текст со-
держит избыточность, которая определяется по формуле:
H
1100%
- энтропия сообщения;
где
L
n
,
n - длина кодовой комбинации при равномерном кодировании.
Энтропия сообщения вычисляется по формуле:
N
,
log
pp
i
N - число символов в алфавите сообщения;
где
2
ii
1
ым симво-

x
x
40
p - относительная частота (вероятность) появления символа в сооб-
i
щении.
Относительная частота встречаемости символа определяется как отношение абсолютной частоты появления символа в сообщении к общей
длине сообщения (числу символов в сообщении):
i
p
,
i
m
где
- абсолютная частота (частость) встречаемости i-ого символа
i
алфавита источника; m – число символов в сообщении.
В данном случае энтропия сообщения равна:
44332211
H
log 2 log log 4 log 2,781
где
pp
p
pppp
2222
16 16 16 16 16 16 16 16
41
p
1
23
21
4
16 8
5678
- относительная частота появления символа «7»;
16 4
3
- относительная частота появления символов «2» и «3»;
16
- относительная частота появления символа «Н»;
1
- относительная частота появления символов
16
бит/символ,
«5», «6», «И», Пробел.
При использовании равномерного кода (например, СР-1251) длина
кодовой комбинации определяется так:
2
8256log
,
бит.
- функция округления аргумента до ближайшего целого значе-
ния, не меньшего, чем
В данном примере
lognN
.
n
2
Избыточность сообщения при кодировании равномерным кодом равна:
781,2
1
L
8
.
%23,65%100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
