
- •Предисловие
- •Лекция 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 |