Сложение и вычитание
Учитывая тот факт, что в нормализованном виде у числа существует знак, а также то, что нормализованный вид существует лишь в нашем воображении, нам не требуется переводить число в обратные/дополнительные коды и заменять вычитание сложением. Все можно делать спокойно, как и с обычными числами.
Стоит лишь сказать о таком действии, как «выравнивание порядков». Перед сложением/вычитанием необходимо найти разность между порядками большего и меньшего чисел. Мы получим положительное число, которое покажет, на сколько разрядов вправо нам необходимо сдвинуть мантиссу числа с меньшим порядком. Нам необходимо получить таким образом одинаковые порядки у чисел.
Все смутно и непонятно? Рассмотрим пример:
28,87510 = 0001 1100,1112 = 0.11100111 × 2101
3,510 = 0000 0011,12 = 0.111 × 210
В данном случае порядок 101 больше, чем 10, поэтому найдем разность: 101 − 10 = 11. 112 = 310, поэтому мы сдвигаем мантиссу числа с меньшим порядком (3,510) вправо на 3 разряда, получая тем самым:
0.111 × 210 = 0.000111 × 2101
Итак, теперь порядки у чисел у нас одинаковые и мы можем спокойно их просуммировать.
Обратите внимание, что раз порядки выровнены, мы выстраиваем слагаемые по левой стороне, добавляя к меньшему справа необходимое количество нулей (они выделены зеленым):

Результат у нас получился не удовлетворяющий нашему представлению о нормализованном виде числа, поэтому мы приводим его к оному. И не забывайте, что сумма такого же порядка, как и слагаемые:
1.00000011 × 2101 = 0.100000011 × 2110
Отлично! Думаю, с вычитанием и сложением с отрицательными сложностей не возникнет, ведь там все идентично десятичной системе счисления. Главное — не забывайте выравнивать порядки слагаемых.
Date: 2015-09-05; view: 407; Нарушение авторских прав Понравилась страница? Лайкни для друзей: |
|
|