2. Основы работы ЭВМ
Дополнительный код образуется следующим образом.
Из выражения видно, что дополнительный код положительного числа совпадает с прямым кодом, а для отрицательного числа получается инверсией всех значащих разрядов и добавлением единицы к младшему разряду результата.
Дополнительный код отрицательного числа может быть получен из обратного кода путем прибавления 1 к младшему разряду обратного кода (естественно, с учетом переносов между разрядами).
Пример 5. Получить дополнительный код для числа х = – 13D.
Решение.
В табл. 2 представлены прямые, обратные и дополнительные коды чисел от – 7D до +7D.
Рассмотрим правило сложения двоичных чисел в дополнительном коде.
При алгебраическом сложении двоичных чисел положительные слагаемые представляют в прямом коде, а отрицательные – в дополнительном коде и производят арифметическое суммирование этих кодов, включая разряды знаков, которые при этом рассматривают как старшие разряды. При возникновении переноса из разряда знака единицу переноса отбрасывают, в результате получают алгебраическую сумму в прямом коде, если эта сумма положительная, и в дополнительном коде, – если сумма отрицательная.
Напомним, что алгебраическое сложение – это сложение, в котором могут участвовать как положительные, так и отрицательные числа.
Пример 6. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 = 7D и х2 = – 3D.
Решение.
Необходимо найти сумму:
Учитывая, что x1 > 0, это число нужно представить в прямом коде, а так как х2 < 0, то х2 нужно перевести в дополнительный код.
Так как результат положителен (в знаковом разряде Р(у) – 0), значит, он представлен в прямом коде. После перевода двоичного числа в десятичную СС получим ответ: у = +4D.
Пример 7. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 = 8D и х2 = – 13D.
Необходимо найти сумму:
Число х1 нужно представить в прямом коде, а х2 – в дополнительном коде.
В знаковом разряде стоит единица, и, значит, результат получен в дополнительном коде.