НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 15161718192021 ... 101


то все зависит от того, какая цифра появляется в знаковом разряде при сдвиге: нуль при S -2. В первом случае к сдвинутому числу необходимо прибавить корректирующее число (5-1). 00... О, а во втором случае - корректирующее число. 1.00...0.

Пример 1.21. Пусть в четверичной системе канонического типа с цифрами О, 1, 2, 3 требуется найти сумму чисел < X >4 = -0,2301 и <у>==- 0,2033. Переходя к обратному коду, получаем , ••

И„ = 3.1032

Щ = 3.1300 .

1 2.2332

I t . • -

- . , 2.2333

Появление в знаковом разряде цифры 2 вместо 3 показывает, что произошло переполнение. Для устранения переполнения сдвинем числовую часть результата на один разряд вправо с учетом потери при сдвиге крайнего ппавого разряда результата. После сдвига получии 2.2233. Теперь прибавим к сдвинутому числу корректирующее слагаемое

2.0233 • - "

2.0000

3.2233 <;c--j;>4 = 4.(-0,1100).

• Полученный результат соответствует истинному значению суммы.

Теперь рассмотрим переполнение для случая 5 = 3,2. Для троичной системы 5 - 2 = 1. Поэтому в такой системе переполнение может быть обнаружено, но не может быть исправлено. Для двоичной системы 5--2 = 0, а 1-5-1. Это означает, что переполнение в двоичной системе вообще не обнаруживается, так как машина не может отличить неправильный результат от правильного. В случае 5 = 2 при переполнении для машины происходит просто смена знака результирующего числа.

Для возможности исправления переполнения в троичной и двоичной системах счисления приходится вводить специальный контрольный разряд, помещае-



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

Для модифицированного кода мы будем исполь- зовать обозначения [х], [х\ или \х]. Если в результате суммирования в модифицированном коде в троичной системе в знаковом и контрольном разрядах стоят одинаковые цифры 00. или 22., то это соответствует отсутствию переполнения. При наличии переполнений для суммы двух положительных чисел в знаковом и контрольном разрядах возникнет комбинация 01., а при наличии переполнения при суммировании двух отрицательных чисел в этих разрядах возникнет комбинация 21. . Таким образом, будет обнаружено переполнение при суммировании и-результат сложения может быть исправлен.

Аналогичное положение получается и.для двоичной системы. При отсутствии переполнения в знаковом и контрольном разрядах суммы стоит комбинация 00. или 11. . Если же произошло переполнение, то при суммировании положительных чисел в знаковом и контрольном разрядах будет стоять комбинация 01., а при суммировании отрицательных чисел - комбинация 10. . Таким образом, с помощью модифицированных кодов можно обнаружить и исправить ошибку переполнения при суммировании в троичной и двоичной системах счисления.

Пример 1.22. Пусть требуется сложить в двоичной системе счисления числа- < х >2 == 0,101101 и >2 = 0,011100. Переходя к дополнительному коду, получаем

= 0.101101 •

= 0.011100

* ~ 1.001001,

и ошибка переполнения не обнаруживается. При не-модифицированном коде машина прочитает результат сложения, как < х-b v>2 = -0,110111, что совершенно не соответствует .настоящему результату.



Перейдем теперь к модифицированному дополнительному коду

, Нмд = оо.101101 • . М„,=,ооотоо :* " 01.001001.

Появление- в знаковом и контрольном разрядах комбинации 01. указывает на переполнение. Для устранения переполнения необходимо . произвести сдвиг результата вправо на один разряд. После сдвига получим число 00.100100. Прибавление коррек-тиру-ющего слагаемого в случае двоичной системы не требуется, если при сдвиге числа содержимое контрольного разряда числа после сдвига совпадает с тем значением, которое было записано в нем до сдвига.

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

До сих пор мы предполагали, что суммирование чисел происходит на сумматоре параллельного типа, показанном на рис. 1.3. Однако все наши выводы верны и для случая суммирования

чисел с помощью сумматора последовательного типа, схема которого изображена на рис. 1.5. В этом сумматоре имеется всего одна одноразрядная суммирующая схема, на вход которой подаются суммируемые числа, начиная с младших разрядов. Перенос в стар-


Рис. 1.5



0 ... 15161718192021 ... 101