Обратный код

В обратном коде (ОК), также как и в прямом коде, для обозначения знака положительного числа используется бит, равный нулю, и знака отрицательного - единице. Об­рат­ный код отрицательного двоичного числа формируется дополнением модуля исходного числа нулями до самого старшего разряда модуля, а затем поразрядной заменой всех нулей числа на единицу и всех единиц на нули. В знаковом разряде обратного кода у положительных чисел будет 0, а у отрицательных - 1.

На рис. 1.2 приведен формат однобайтового двоичного числа в обратном коде.

Рис. 1.2. Формат двоичного числа со знаком в обратном коде

а - положительное число; б – отрицательное

В общем случае ОК является дополнением модуля исходного числа до наибольшего числа без знака, помещенного в разрядную сетку.

Алгоритм формирования ОК очень прост, при этом ОК позволяет уни­фи­цировать операции сложения и вычитания в АЛУ, которые в прямом ко­де выполняются по-разному. Однако работа с ОК вызывает ряд труд­нос­тей. В частности, возникают два нуля: +0 и -0, т.е. в прямом коде (в котором пред­­ставлены положительные числа) имеет место (+0) = 000...0, а в обрат­ном коде (в котором представлены отрицательные числа): (-0) = 111...1.

Кроме того, в операциях сложения и вычитания требуется дополни­тельная операция по прибавлению бита переноса в младший разряд суммы. Рассмотрим правила алгебраического сложения в ОК (поскольку А-В=А+(-В)). Алгоритм сложения в ОК включает в себя:

- сложение кодов, включая знаковый разряд;

- прибавление переноса к МЗР (младшему значащему разряду) суммы.

Пример:

Вычислить выражение -3(10) -2(10).

Пример:

Вычислить 7(10) -3(10).

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: