Двоичное вычитание с использованием дополнительных кодов.

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

Формирование дополнительного кода, или сокращенного дополнения, как было рассмотрено в пп.3.4.1, состоит из двух операций: операции получения обратного кода и операции добавления единицы в младший разряд.

Правило. Обратный (инверсный) код числа получается обращением (инвертированием) нулей двоичного числа в единицы, а единиц — в нули. Дополнительный код числа — это сумма его обратного кода и единицы младшего разряда.

 

Пример: пусть 1001 есть исходное число
  — обратный код числа
  — добавляемая единица
  —дополнительного код числа

Рассмотрим далее, как реализуется двоичное вычитание с помощью чисел представленных в дополнительном коде.

Пример:, Пусть необходимо из числа 1001102 вычесть число 10102, т.е.:

1001102 – 10102

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

00100110 – 000001010

Далее получим дополнительный код вычитаемого 1010 (точнее его восьмиразрядной записи)

  — прямой код числа
  — обратный код числа
  — добавляемая единица
  —дополнительного код числа

Найдем разность исходных чисел, сложив полученный дополнительный код числа с уменьшаемым и отбросив «лишний» девятый разряд, если он образуется: