Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konsp_Arkh_EVM (1).doc
Скачиваний:
5
Добавлен:
10.09.2019
Размер:
2.62 Mб
Скачать

9.4. Кодирование

Кодирование операндов со знаком в вычислительном процессе можно осуществить в трёх типах кодов:

  • Прямой

  • Обратный

  • Дополнительный

Прямой код - ПК

Является стандартной формой числа при её хранении и пересылке. Данный код даёт возможность оценить операнд без его вычисления.

Код не применим для выполнения операций:

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

Поэтому ПК более применим для без знаковых операций, а именно для:

  • Упорядочивания элементов множества

  • Хранения и передачи операндов

  • Вычисления адреса

Обратный код

Свойства:

  • - обратный код от обратного кода равен прямому коду

  • ∑ОК = ОК∑ - сумма обратного кода равна обратному коду суммы

Рассмотрим переход от прямого кода к обратному:

Переход возможен при использовании операции «сложение по модулю два».

Рисунок 83. Сумматор по модулю 2

Таблица 4

А

В

А В

0

0

0

0

1

1

1

0

1

1

1

0

Рисунок 84. Схема преобразования ПК в ОК

Основа схемы:

Рисунок 85. Многоразрядный сумматор по модулю 2

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

Рисунок 86. Функциональная схема преобразователя ПК в ОК

Рисунок 87. Структурное обозначение преобразователя ПК в ОК

Разберём несколько примеров на ОК:

Пример 1.

Пример 2.

На Примере 2 видно, что если при сложении обратных кодов происходит перенос из старшего знакового разряда, то происходит добавление единицы к младшему разряду, что усложняет и удлиняет запись.

Для того чтобы рассмотреть ещё одно свойство ОК, следует вспомнить о требованиях Рутисхаузера:

  • Требование единственности: любое число должно отображаться единственным образом;

  • Требование упорядоченности: большей десятичной цифре соответствует комбинация с большим весом;

  • Четность: четным десятичным цифрам соответствуют четные двоичные комбинации. Признаком четности двоичной комбинации является значение правого младшего разряда. Если правый разряд равен «нулю» - комбинация является четной, правый разряд, равный «единице», соответствует нечётной комбинации;

  • Требование весомозначимости: вес кодовой комбинации соответствует значению десятичной цифры;

  • Требование дополнительности: при сложении двоичных и десятичных цифр перенос, возникающий при сложении десятичных цифр, должен иметь вес при сложении соответствующей им кодовой комбитнации.

ОК:

Т.е. в ОК требование единственности не выполняется.

Это утверждение справедливо и для ПК:

Подводя итог сформулируем недостатки ОК:

  • Имеет две формы записи «машинного нуля»

  • При сложении операндов в ОК в случае переноса из знакового разряда происходит добавление единицы, что увеличивает время сложения.

Дополнительный код

ДК отрицательного числа можно просчитать быстрее если пользоваться следующим алгоритмом: просматривается число с право на лево, нули остаются без изменения, так же как и первая встречающаяся единица, остальные же инвертируются.

Свойства:

  • - дополнительный код от дополнительного кода равен прямому коду

  • ∑ДК = ДК∑ - сумма дополнительного кода равна дополнительному коду суммы

Рассмотрим переход от прямого кода к дополнительному.

Схема преобразования.

Рисунок 88. Функциональная схема преобразователя ПК в ДК

Рисунок 89. Структурное обозначение преобразователя ПК в ДК

Т.е. код нуля одинаков и для положительных и для отрицательных чисел. В ДК соблюдается требование единственности.

В отличие от ОК, если возник перенос из знакового разряда, в ДК этот перенос пренебрегается, т.е. не происходит удлинение процесса.

Рассмотрим несколько примеров на ДК:

Пример 1.

Пример 2.

Несомненным плюсом ОК и ДК является легкое обнаружение переполнения разрядной сетки, если мы работаем с числами со знаком.

Признаком переполнения в этом случае является: (n (n – 1)) = 1

В случае если (n (n – 1)) = 0, то перенос отсутствует.

Продолжим рассматривать реализацию основных арифметических операций с помощью операционных элементов.

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