Сложение в двоичном дополнительном коде

Для сложения чисел в двоичном дополнительном коде применяется такой же алгоритм, как для двоичного сложения, только в этом случае все коды, включая результат операции, будут иметь одинаковую длину. Это означает, что если в результате сложения появляется дополнительный бит с левого края, он будет отсечен. Именно поэтому 0101 и 0010 в сумме дают 0111, а сумма 0111 и 1011 равна 0010 (0111 + 1011 = 10010, которая усекается до 0010).

Рассмотрим три примера сложения в дополнительном коде (рис. 1.22). В каждом случае десятичная запись была представлена 4-битовым кодом, а результат сложения опять переведен в десятичную систему счисления.

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

В отличие от школьников, которые сначала должны научиться сложению, а затем вычитанию, машине, в которой используется представление в двоичном дополнительном коде, нужно научиться выполнять только операции сложения и отрицания. Например, операция вычитания 7-5 аналогична операции сложения 7 + (-5). Следовательно, если потребуется вычесть 5 (с кодом 0101) из 7 (с кодом 0111), то машина, прежде всего, заменит 5 на —5 (с кодом 1011) и затем выполнит операцию сложения, результатом которой будет 0010, то есть код числа 2:

Мы видим, что если для представления чисел используется двоичный дополнительный код, то для выполнения операций сложения и вычитания достаточно комбинации схем сложения и отрицания (об этих схемах рассказывается в приложении Б).


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



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