- •Предисловие
- •Лекция 1. Информация. Начальные понятия и определения
- •1. Информация и данные
- •2. Адекватность и формы адекватности информации
- •3. Качество информации
- •4. Понятие об информационном процессе
- •5. Формы представления информации
- •6. Преобразование сообщений
- •Лекция 2. Необходимые сведения из теории вероятностей
- •1. Понятие вероятности
- •2. Сложение вероятностей независимых несовместных событий
- •3. Умножение вероятностей независимых совместных событий
- •4. Нахождение среднего для значений случайных независимых величин
- •5. Понятие условной вероятности
- •6. Общая формула для вероятности произведения событий
- •7. Общая формула для вероятности суммы событий
- •Лекция 3. Понятие энтропии
- •1. Энтропия как мера неопределенности
- •2. Свойства энтропии
- •3. Условная энтропия
- •Лекция 4. Энтропия и информация
- •1. Объемный подход к измерению количества информации
- •2. Энтропийный подход к измерению количества информации
- •Лекция 5. Информация и алфавит
- •Лекция 6. Постановка задачи кодирования. Первая теорема Шеннона.
- •Лекция 7. Способы построения двоичных кодов. Алфавитное неравномерное двоичное кодирование сигналами равной длительности. Префиксные коды.
- •1. Постановка задачи оптимизации неравномерного кодирования
- •00100010000111010101110000110
- •2. Неравномерный код с разделителем
- •3. Коды без разделителя. Условие Фано
- •00100010000111010101110000110
- •00100010000111010101110000110
- •4. Префиксный код Шеннона–Фано
- •5. Префиксный код Хаффмана
- •Лекция 8. Способы построения двоичных кодов. Другие варианты
- •1. Равномерное алфавитное двоичное кодирование. Байтовый код
- •2. Международные системы байтового кодирования текстовых данных. Универсальная система кодирования текстовых данных
- •3. Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •4. Блочное двоичное кодирование
- •101010111001100010000000001000000000000001
- •5. Кодирование графических данных
- •6. Кодирование звуковой информации
- •Лекция 9. Системы счисления. Представление чисел в различных системах счисления. Часть 1
- •1. Системы счисления
- •2. Десятичная система счисления
- •3. Двоичная система счисления
- •4. 8- И 16-ричная системы счисления
- •5. Смешанные системы счисления
- •6. Понятие экономичности системы счисления
- •Лекция 10. Системы счисления. Представление чисел в различных системах счисления. Часть 2.
- •1. Задача перевода числа из одной системы счисления в другую
- •2. Перевод q p целых чисел
- •3. Перевод p q целых чисел
- •4. Перевод p q дробных чисел
- •6. Перевод чисел между 2-ичной, 8-ричной и 16-ричной системами счисления
- •Лекция 11. Кодирование чисел в компьютере и действия над ними
- •1. Нормализованные числа
- •2. Преобразование числа из естественной формы в нормализованную
- •3. Преобразование нормализованных чисел
- •4. Кодирование и обработка целых чисел без знака
- •5. Кодирование и обработка целых чисел со знаком
- •6. Кодирование и обработка вещественных чисел
- •Лекция 12. Передача информации в линии связи
- •1. Общая схема передачи информации в линии связи
- •2. Характеристики канала связи
- •3. Влияние шумов на пропускную способность канала
- •Лекция 13. Обеспечение надежности передачи информации.
- •1. Постановка задачи обеспечения надежности передачи
- •2. Коды, обнаруживающие одиночную ошибку
- •3. Коды, исправляющие одиночную ошибку
- •Лекция 14. Способы передачи информации в компьютерных линиях связи
- •1. Параллельная передача данных
- •2. Последовательная передача данных
- •3. Связь компьютеров по телефонным линиям
- •Лекция 15. Классификация данных. Представление данных в памяти компьютера
- •1. Классификация данных
- •2. Представление элементарных данных в озу
- •Лекция 16. Классификация структур данных
- •1. Классификация и примеры структур данных
- •2. Понятие логической записи
- •Лекция 17. Организация структур данных в оперативной памяти и на внешних носителях
- •1. Организация структур данных в озу
- •2. Иерархия структур данных на внешних носителях
- •3. Особенности устройств хранения информации
- •Контрольные вопросы
- •Список литературы
5. Кодирование и обработка целых чисел со знаком
Кодирование целых чисел, имеющих знак, можно осуществить двумя способами.
Первый способназываетсяпрямым кодом. При этом один (старший) разряд в машинном слове (напомним, здесь машинное слово – 16 разрядов) отводится для записи знака числа; при этом условились кодировать знак «+» нулем, а знак «» единицей. Под запись самого числа, очевидно, остается 15 двоичных разрядов, что обеспечивает наибольшее значение числа. Однако прямое кодирование усложняет вычисления. Например, операция сложения двух чисел с разными знаками должна быть заменена операцией вычитания меньшего из большего с последующим присвоением результату знака большего по модулю числа. Таким образом, такая операция сопровождается рядом проверок условий и выработкой признаков, в соответствии с которыми выбирается то или иное действие.
Второй способкодирования целых чисел со знаком называетсядополнительным кодированием. Идея построения дополнительного кода такова: на оси целых чисел (– всего 65536 чисел), помещающихся в машинное слово (в 16 разрядов) сместим положение нуля к середине интервала. При этом числа из первой половины () интервалабудем считать положительными, а числа из второй половины () будем считать отрицательными. Судить о знаке числа можно по его величине, и в явном виде выделение знака не требуется.Оказывается, что принадлежность кода к интервалу кодов положительных или отрицательных чисел также видна по состоянию старшего бита – у кодов положительных чисел его значение «0», а у кодов отрицательных – «1». Это напоминает представление чисел с помощью прямого кода, но принцип построения дополнительного кода другой. Применение дополнительного кода позволяет заменить вычитание чисел их суммированием в дополнительном коде.
Рассмотрим вычитание числа , что эквивалентно прибавлению.
При наличии kразрядов можно закодироватьчисел вP-ичной системе счисления. При этом максимальноеk-разрядноеP-ичное число есть, а число(оно содержитразрядов) можно считать нулем, так как первые слева (младшие)kразрядов (битов) в численулевые, а старший, единичный бит в нем уже не входит в отведенную разрядную сетку. Таким образом, можно записать:
. (12.5)
Однако вычесть избудет удобнее, если (12.5) преобразовать:
, (12.6)
причем число есть максимальноеP-ичноеk-разрядное число, каждая его цифра равна:
, (12.7)
, (12.8)
Цифры числа Zобозначим:
. (12.9)
Таким образом, с учетом (12.8) и (12.9), выражение (12.7) легко преобразуется:
. (12.10)
Величина (12.10) называется дополнением целого k-разрядного числа Z в системе счисления P.
Пример.;
.
Важным свойством дополнения является то, что его сумма с исходным числом в заданной разрядной сетке равна нулю, то есть
. (12.11)
Пример.;
.
В этом примере единица в скобках должна быть отброшена, так как она выходит за отведенную разрядную сетку.
Из (12.11) логично заключить, что
, (12.12)
значит, при имеем
. (12.13)
Поэтому дополнительный код (DС)двоичных чисел в компьютере надо строить согласно следующему правилу:
для дополнительный код совпадает с самим числом, то есть;
для дополнительный код совпадает с дополнением модуля числа, то есть.
Пример. Построить дополнительный двоичный код числа.
;
Пример. Построить дополнительный двоичный код числа.
.
Кстати, используя результаты этих примеров, легко убедиться, что
.
Прямые и дополнительные коды целых чисел со знаком сопоставлены в табл. 19.
В компьютере используется интервал целых чисел со знаком, закодированных дополнительным двоичным кодом. Именно таким является диапазон значений чисел типаIntegerв языкеPASCAL.
В компьютере перевод в дополнительный код осуществляется автоматически при вводе чисел. Именно в таком виде числа хранятся в ОЗУ и участвуют в арифметических операциях.
Еще раз отметим, что операция вычитания как самостоятельная отсутствует; она заменяется сложением уменьшаемого (то есть его дополнительного кода) с дополнением вычитаемого, то есть имеет место сложение содержимого двух ячеек памяти.
О знаке результата судят по значению старшего (первого слева) бита, как и в прямом двоичном коде (см. таблицу): «0» соответствует знаку «+», «1» соответствует знаку «».
Если результат отрицательный, то прямой код модуля числа получают из дополнительного кода в обратном изложенному порядке: -я цифра числаравна разности значенияPи-й цифры числа.
Табл. 19. Прямые и дополнительные коды целых чисел со знаком
Прямой десятичный код
|
Прямой 16-разрядный двоичный код
|
Дополнительный 16-разрядный двоичный код
| |
32 768 |
— |
1000 0000 0000 0000 |
Совпадает с дополнением модуля |
32 767 |
1111 1111 1111 1111 |
1000 0000 0000 0001 | |
32 766 |
1111 1111 1111 1110 |
1000 0000 0000 0010 | |
…
|
…
|
…
| |
3 |
1000 0000 0000 0011 |
1111 1111 1111 1101 | |
2 |
1000 0000 0000 0010 |
1111 1111 1111 1110 | |
1 |
1000 0000 0000 0001 |
1111 1111 1111 1111 | |
0 |
0000 0000 0000 0000 |
0000 0000 0000 0000 |
Совпадает с прямым кодом |
+1 |
0000 0000 0000 0001 |
0000 0000 0000 0001 | |
+2 |
0000 0000 0000 0010 |
0000 0000 0000 0010 | |
+3 |
0000 0000 0000 0011 |
0000 0000 0000 0011 | |
…
|
…
|
…
| |
+32 766 |
0111 1111 1111 1110 |
0111 1111 1111 1110 | |
+32 767 |
0111 1111 1111 1111 |
0111 1111 1111 1111 |