Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Модифицированные обратный и дополнительный коды.




При переполнении разрядной сетки, происходит перенос единицы в знаковый разряд. В этом случае положительное число, получившееся в результате арифметической операции может восприниматься как отрицательное, так как в знаковом разряде записывается «1». Например:

X = 0, 1 0 1 0 1 1 0

Y = + 0, 1 1 0 1 0 0 0

X+Y = 1, 0 1 1 1 1 1 0

Здесь X и Y – коды положительных чисел, но ЭВМ воспринимает результат их сложения как код отрицательного числа («1» в знаковом разряде). Для обнаружения переполнения разрядной сетки вводятся модифицированные коды.

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

1) для положительного числа X = XnXn-1…X2X1X0:

;

2) для отрицательного числа X = XnXn-1…X2X1X0:

(обозначение читается «не X», т.е., если X = 0, то = 1 и наоборот, если X = 1, то = 0).

Любая другая комбинация («0 1» или «1 0»), получившаяся в знаковых разрядах служит признак ом переполнения разрядной сетки. Сложение чисел в модифицированном обратном коде ничем не отличается от сложения в обычном обратном коде.

Рассмотрим предыдущий пример, выполнив сложение в модифицированном обратном коде:

X = 0 0, 1 0 1 0 1 1 0

Y = + 0 0, 1 1 0 1 0 0 0

X+Y = 0 1, 0 1 1 1 1 1 0

Обратим внимание на то, что в записи введен дополнительный (девятый) бит. Далее будем использовать 8-битную разрядную сетку. Уменьшая максимальное возможное значение числа (по модулю) выделим два знаковых разряда.

В процессе работы ЭВМ оба знаковых разряда сравниваются. В случае появления признака переполнения машина останавливается.

Модифицированный дополнительный код также рассматривает два знаковых разряда, а во всем остальном ничем не отличается от обычного дополнительного кода, то есть:

1) для положительного числа X = XnXn-1…X2X1X0:

;

2) для отрицательного числа X = XnXn-1…X2X1X0:

.

Пример. Даны два числа: X = 101001 и Y = – 11010. Сложить их в обратном, дополнительном и модифицированных обратном и дополнительном кодах.

1) Переведем X и Y в обратный и дополнительный коды:

Прямой код Обратный код Дополнительный код
Xпр= 0, 0 1 0 1 0 0 1 Yпр= 1, 0 0 1 1 0 1 0 Xобр = 0, 0 1 0 1 0 0 1 Yобр = 1, 1 1 0 0 1 0 1 Xдоп = 0, 0 1 0 1 0 0 1 Yдоп = 1, 1 1 0 0 1 1 0

а так же в модифицированные обратный и дополнительный коды:

Модифицированный прямой код Модифицированный обратный код Модифицированный дополнительный код
Xпр= 0 0, 1 0 1 0 0 1 Yпр= 1 1, 0 1 1 0 1 0 = 0 0, 1 0 1 0 0 1 = 1 1, 1 0 0 1 0 1 = 0 0, 1 0 1 0 0 1 = 1 1, 1 0 0 1 1 0

Выполним сложение в обратном и модифицированном обратном кодах:

Обратный код Модифицированный обратный код
  Xобр = 0, 0 1 0 1 0 0 1 Yобр = 1, 1 1 0 0 1 0 1 1 0, 0 0 0 1 1 1 0 +1 (X+Y)обр = 0, 0 0 0 1 1 1 1   = 0 0, 1 0 1 0 0 1 = 1 1, 1 0 0 1 0 1 1 0 0, 0 0 1 1 1 0 +1 (X+Y)обр = 0 0, 0 0 1 1 1 1

Выполним сложение в дополнительном и модифицированном дополнительном кодах:

Дополнительный код Модифицированный дополнительный код
  Xдоп = 0, 0 1 0 1 0 0 1 Yдоп = 1, 1 1 0 0 1 1 0 1 0, 0 0 0 1 1 1 1 отбрасывается (X+Y)доп = 0, 0 0 0 1 1 1 1   = 0 0, 1 0 1 0 0 1 = 1 1, 1 0 0 1 1 0 1 0 0, 0 0 1 1 1 1 отбрасывается (X+Y)доп = 0 0, 0 0 1 1 1 1

Переполнения разрядной сетки нет (символы в знаковых разрядах одинаковые), а полученное число – положительное (в знаковых разрядах «00») поэтому полученные коды всех результатов совпадают (X+Y=1111).






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных