Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Сложение и вычитание чисел



 

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

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

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

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

Десятичная форма -> +12 -5

Двоичная форма -> +1100 -101

Прямой код -> 00001100 10000101

Обратный код -> 00001100 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 (Добавление 1 переноса)

==============

0 0 0 0 0 1 1 1

Итак, результат в обратном коде = 00000111.

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

Проверка (+12-5=+7) показывает, что результат верный.

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

Десятичная форма -> +12 -5

Двоичная форма -> +1100 -101

Прямой код -> 00001100 10000101

Обратный код -> 00001100 11111010

+1

Дополнительный код -> 00001100 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

(Перенос игнорируется)

Итак, результат в дополнительном коде = 00000111.

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

Проверка (+12-5=+7) показывает, что результат верный.

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




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.