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

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

0 ... 36373839404142 ... 101


отрицательного числа ё обратный код достаточно каждую цифру числа заменить ее дополнением до единицы, что соответствует простой замене О на 1 и 1 на 0. В знаковом разряде кода ставится единица. Операция обращения записи отрицательного .числа в обратный код часто называется инвертированием. Однако для того чтобы не использовать термин «инвертирование» в двух различных смыслах (как

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

«обратному коду.

Для перехода к дополнительному коду, как и ранее, достаточно прибавить единицу в младший разряд обратного, кода числа. Для того чтобы избежать операции прибавления единицы, можно построить алгоритм перевода отрицательных двоичных чисел из •прямого кода- в дополнительный и обратно без использования в качестве промежуточного результата перевода в обратный код. Этот алгоритм состоит в следующем: для перевода прямого кода отрицательного числа в- его дополнительный код необходимо при просмотре прямого кода справа налево, начиная с его младших разрядов, оставить без изменения все разряды до первой единицы включительно, а все разряды, стоящие слева от этой единицы (кроме знакового), превратить в обратный код (т. е. заменить О, стоящие в этих- разрядах, на 1, и наоборот). Аналогичный алгоритм верен и для обратного перевода.

Пример 2.4. Перевести в дополнительный код число (.х)2 = 0,110101.

Осуществим этот перевод двумя способами: по универсальному алгоритму и с помощью метода, который мы только что описали. Переходим к обратному коду данного числа, [х] = 1.001010. Дополнительный код получаем из обратного, прибавляя к его последнему справа разряду одну единицу {х\= = 1.001011.

Теперь воспользуемся методом непосредственного перехода от прямого кода числа к его дополнитель-



ному коду. M„== 1.110101; Просматривая этот код, начиная с младших разрядов, обнаруживаем, что единица стоит в первом справа разряде. Для перехода к дополнительному коду оставляем эту единицу неизменной, а все цифры, стоящие слева от. нее, заменяем их дополнениями. Получаем [л;] = 1.001011.

Применение специального метода преобразования числа в дополнительный код особенно выгодно при использовании сумматоров накапливающего типа (см. § 1.9), для которых время перевода числа в дополнительный код (или обратного перевода) уменьшается при использовании описанного метода в 1,7-г-2,4раза. Усложнения схемы сумматора при этом весьма незначительны.

- Операция алгебраического сложения выполняется в дополнительном или обратном коде на основе правил, сформулированных в § 1.4.

Пример 2.5. Найти {х) + {у)2 и (л:)2- {у)2 для чисел (л;)2 = 0,01101 и (j;)2 = -0,10110, используя при суммировании модифицированные дополнительные коды чисел.

М„ = 00.01101 [xU =00.01101

" Ымд-11-01010 [-jL-oo.ioiio

[-+3]мд= 11-10111 [.«--j;U= 01.00011

с учетом исправления переполнения при вычитании получаем (л: + У)2 = -0,01001 и (j(;-j;)2 = 0,10001.

Рассмотрим теперь мето, позволяющий в "двоичной системе производить операцию алгебраического сложения непосредственно в прямом коде*. . . . .

Этот метод будет излагаться для случая естественной.формы представления чисел. Однако его употребление для" случая полулогарифмического представления не требует практически никаких изменений. ° .

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

* Описываемый метод предложен в Институте кибернетики АН Грузинской ССР...... . . .-• . , : ,л

-.Л23



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

Рассмотрим сначала операцию арифметического суммирования. Для организации операции произведем разбиение слагаемых на специальные группы разрядов. Для разбиения слагаемые просматриваются справа налево, начиная с младшего разряда. При каждом просмотре оценивается пара (х/, yi), стоящая в i-м разряде обоих слагаемых. Просмотр.происходит до тех пор, пока впервые не встречаются комбинации (1,1). При появлении этой комбинации все разряды, начиная с п-го по г-й (разряд, где встретилась комбинация (1,1)) включительно, объединяются в группу, которая в дальнейшем называется /7-группой. Заметим, что р-группа может состоять и из одного разряда, если первый просматриваемый разряд уже дает комбинацию (1,1). После выделения р-группы просмотр продолжается до первой встреченной комбинации (О, 0). Ъсе разряды, стоящие слева от р-групп.1, до разряда, давшего комбинацию (О, 0), включительно образуют группу разрядов, которая в дальнейшем называется -группой. После выделения д-группы вновь начинает выделяться р-группа, и т. д. Выделение групп заканчивается, когда будет просмотрен старший числовой разряд слагаемых (знаковые разряды в просмотре не участвуют). Независимо от комбинации цифр слагаемых в первом числовом разряде этот разряд замыкает ту группу, которая выделялась на последнем этапе разбиения.

После разбиенияна группы в каждой группе происходит поразрядная операция по следующим правилам:

р-группа

9-группа

Полученный после этого результат есть арифметическая cyuui исходных чисел*.

Пример 2.6. Найти арифметическую сумму чисел <A;>2i= = 0,10110010011 и <j>3 = 0,00001110110.

Для выделения групп запишем оба слагаемых так, чтобы их соответствующие разряды находились на одной вертикали

0 1 1 0 0

0 0 Q 1 1

Вертикальная черта отделяет одну выделенную группу от другой. Применяя правила сложения для групп, получим окончательный результат в виде<л;+J>2= 0,11000001001.

Теперь перейдем к рассмотрению операции взятия модуля от разности двух положительных чисел (модуля разности модулей). .

* Справедливость .этого утверждения может быть доказана читателем самостойтельнона основе анализа сущности операций для грунй и правил разбиения на группы.



0 ... 36373839404142 ... 101