Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3.4. СЛОЖЕНИЕ ЧИСЕЛ В МАШИНАХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙРезультат сложения двух чисел
Так как числа с разными порядками суммировать нельзя, то для сложения двух чисел, представленных в нормальной форме, необходимо предварительно их привести к общему порядку, т. е. преобразовать одно из слагаемых, например В, следующим образом:
После этого можно вынести степень основания системы за скобки и выполнить сложение мантисс
Преобразованная мантисса должна быть правильной дробью с тем, чтобы при сложении ничем не отличаться от обычных (непреобразованных) мантисс. Поэтому преобразованию подвергается всегда меньшее слагаемое, так как в противном случае происходит переполнение разрядной сетки мантиссы преобразуемого числа. При этом часть разрядов преобразуемой мантиссы может теряться. Поэтому арифметические действия над числами с плавающей запятой являются по своей сути приближенными, а не точными. При сложении чисел в нормальной форме можно выделить четыре этапа. На первом этапе уравниваются порядки слагаемых: меньший порядок увеличивается до большего, а мантисса преобразуемого числа сдвигается вправо на соответствующее количество разрядов. С этой целью производится вычитание порядков чисел. Знак и модуль разности будут определять соответственно, какое из слагаемых нужно преобразовывать и на сколько разрядов следует сдвинуть их мантиссу. При этом младшие разряды мантиссы могут пропадать, вследствие чего в слагаемое, сдвигаемое вправо, вносится погрешность. На втором этапе производится преобразование мантисс слагаемых в один из модифицированных кодов: дополнительный или обратный. На третьем этапе выполняется сложение мантисс по правилам сложения чисел с фиксированной запятой. На четвертом этапе производится нормализация результатов (в случае необходимости), затем результат переводится в прямой код, к нему приписывается общий порядок слагаемых и выполняется округление мантиссы результата. В зависимости от абсолютных величин мантисс слагаемых сумма может получиться: нормализованной, денормализованной вправо, денорма Следует отметить, что положительные нормализованные числа всегда имеют 1 в разряде чисел. Вследствие этого несовпадение цифр в знаковых разрядах свидетельствует о денормализации влево (переполнение), а совпадение цифр знакового и старшего разряда мантиссы — о нарушении нормализации вправо. При переполнении (денормализации результата влево) мантисса результата сдвигается на один разряд вправо, а порядок увеличивается на единицу, так как сумма двух мантисс может быть денормализована влево не более чем на 1 разряд. В то же время при денормализации вправо мантисса сдвигается влево до появления в старшем разряде Обычно количество сдвигов влево ограничивают числом разрядов сумматора, так как процесс сдвигов при таком порядке действий может оказаться бесконечным, если в результате алгебраического сложения мантисс получен нуль. В этом случае после выполнения предельного числа сдвигов мантиссу результата представляют машинным нулем. Мантиссу результата представляют также машинным нулем, если в процессе ее сдвига влево порядок числа окажется меньше допустимого, т. е. абсолютная величина результата будет меньше, чем минимально возможное машинное число. Однако приравнивание результата нулю при отрицательном переполнении порядка допустимо только в отдельных случаях, когда результат должен складываться со значительно большей величиной. Если исчезновение порядка не отмечается каким-то образом, то могут возникнуть неожиданные ситуации, когда При сложении может произойти истинное переполнение разрядной сетки числа, т. е. переполнение разрядной сетки порядка. В этом случае минимум одно из слагаемых должно иметь максимальный порядок, а мантисса результата должна получиться денормализованной влево. При этом в ЭВМ формируется сигнал переполнения порядка. Таким образом, после суммирования мантисс обоих слагаемых с выравненными порядками сначала следует проверить, не нарушена ли нормализация влево, и если нарушена, то восстановить нормализацию. Если нормализация влево не нарушена, необходимо проверить, нет ли нарушения нормализации вправо, и в случае необходимости восстановить нормализацию. Примеры. 1) Заданы
Нормализация:
При выполнении сдвига влево необходимо следить, чтобы справа не было введено ошибок.
Результат денормализован влево, поэтому мантиссу сдвигаем вправо на один разряд
В системах команд современных ЭВМ имеется большой набор команд для выполнения операций сложения и вычитания как с длинными, так и с короткими операндами с нормализацией и без нормализации результата. Выполнение операций вычитания отличается от сложения тем, что в начале операции знак второго операнда искусственно меняется на обратный. Так как нередко основание системы счисления берется равным Переполнение, т. е. денормализадия влево, устраняется сдвигом мантиссы вправо на четыре разряда и увеличением порядка на единицу. Если возникает при этом переполнение порядка, то формируется требование прерывания. При нормализации влево может появиться характеристика меньше нуля (порядок меньше Если в результате алгебраического сложения получилась мантисса, равная 0, то реакция ЭВМ на этот результат зависит от того, разрешено или нет прерывание при потере значимости. Знак суммы при нулевой мантиссе результата всегда положителен.
|
1 |
Оглавление
|