К содержанию

Операция сложения в обратном и дополнительном кодах

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

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

Пример: Сложить числа +12 и -5.

а) В обратном коде

Десятичная форма

Двоичная форма

Прямой код

Обратный код

+12

+1100

00001100

00001100

-5

-101

10000101

11111010

Выполним сложение:

+

0

0

0

0

1

1

0

0

1

1

1

1

1

0

1

0

+

1 0 0 0 0 0 1 1 0
1
0 0 0 0 0 0 1 1 1

Результат в обратном коде – 00000111. Поскольку знаковый разряд равен 0, результат положительный, и, следовательно, запись кода числа совпадает с записью прямого кода. Теперь можно восстановить алгебраическую запись результата. Он равен +111 (незначащие нули отброшены), или в десятичной форме +7. Проверка (+12-5=+7) показывает, что результат верный.

б) В дополнительном коде

Десятичная форма

Двоичная форма

Прямой код

Обратный код

Дополнительный код

+12

+1100

00001100

00001100

00001100

-5

-101

10000101

11111010

11111011

Выполним сложение в дополнительном коде:

+

0

0

0

0

1

1

0

0

1

1

1

1

1

0

1

1

1 0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1 1

Результат в дополнительном коде – 00000111. Поскольку знаковый разряд равен 0, результат положительный. Теперь можно восстановить алгебраическую запись результата. Он равен +111 (незначащие нули отброшены), или в десятичной форме +7. Проверка (+12-5=+7) показывает, что результат верный.

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

Добавить комментарий

Частые вопросы

Можно ли считать рейтинг на Языки программирования Pascal и Delphi рекламой?

Нет, это справочная подборка. Партнёрские ссылки, если они есть, не заменяют проверку оферты, лицензий и отзывов на стороне сервиса.

Чем страница «Операция сложения в обратном и дополнительном кодах» отличается от главной Языки программирования Pascal и Delphi?

Это отдельная карточка или рубрика, а не дубль главной. Канонический адрес — текущий URL без www и с https.

Стоит ли покупать «Операция сложения в обратном и дополнительном кодах» только по этому тексту?

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

Где смотреть источники и контакты редакции Языки программирования Pascal и Delphi?

Автор указан в карточке страницы. Служебные разделы — «О проекте», «Контакты» и политика конфиденциальности — в подвале сайта.