Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сложение порядков



Необходимость сложения порядков существует при умножении чисел (раздел 6.4).

В общем случае форматы операндов X и Y разные. Пусть длины полей смещенных порядков и смещения соответственно. Результат сложения смещенных порядков

, (6-18)

равен сумме порядков, смещенной на , и имеет длину .

Записать сумму смещенных порядков в поле порядков результата, имеющего формат длинного операнда, нельзя по следующим причинам. Длина смещенной суммы порядков на 1 бит превышает длину поля порядка формата. Смещение суммы порядков превышает принятое в формате результата. Область определения суммы порядков существенно превышает область определения порядка в формате длинного операнда .

Замечание. Если операнд представлен в формате стандарта IEEE 754 числом ненормализованным, то при сложении смещенных порядков его смещенный порядок следует принять равным 1.

По значению суммы (6-18) можно определить переполнение суммы порядков в положительную и отрицательную стороны, ее равенство максимально допустимому и минимально допустимому порядку в формате результата и все иные признаки, сравнивая с соответствующими константами, увеличенными на .

В исключительной ситуации переполнения формата (п.2 в разделе 6.4), если результат умножения подлежит пересылке обработчику прерывания, в поле смещенного порядка формата результата записывают вычисленный смещенный на порядок произведения, уменьшив его на , где – поправка смещения (раздел 5.5). Затем выполняют округление и последующую пересылку результата. Если сигнал прерывания заблокирован, в результат записывают код .

Если один из операндов число ненормализованное и произведение мантисс денормализовано вправо (п.3 в разделе 6.4), нормализация произведения мантисс с соответствующим уменьшением суммы смещенных порядков может вызвать переполнение ее формата в сторону отрицательных чисел, что нежелательно.

Пример 6-3. Пусть операнды и представлены в форматах двойной и одинарной точности стандарта IEEE 754 соответственно и имеют значения и . Операнд представлен в формате как нормализованное число с мантиссой и смещенным порядком , а операнд – число ненормализованное с мантиссой и смещенным порядком .

Поскольку – число ненормализованное, то при умножении примем . Тогда . Произведение мантисс

денормализовано на 22 разряда. Нормализация произведения мантисс потребует уменьшения суммы смещенных порядков на 22. Смещенный порядок произведения станет отрицательным.

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

. (6-19)

Введение поправки дополнительно смещает в область положительных чисел. Это приводит к тому, что смещенная сумма порядков при нормализации произведения мантисс влево не может стать отрицательной.

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

Если исключительная ситуация потери значимости не складывается и вычислен нормализованный округленный результат с порядком смещенным на в формат результата записывают вычисленный смещенный порядок произведения, уменьшив его на . Если результат с порядком смещенным на число ненормализованное, в формат результата записывают смещенный порядок 0.

Когда порядок смещен на , то при сравнении с константами следует сравнивать смещенный код с константами, увеличенными на . Например, чтобы вычислить отношение , нужно выполнить сравнение кодов .

Введение поправки выполняют при сложении смещенных порядков нормализованного и ненормализованного операндов заменой смещенного порядка ненормализованного операнда равного 0 константой . Тем самым учитывают, что порядок ненормализованного операнда и вводят дополнительное смещение .

Поскольку смещенный порядок ненормализованного числа всего лишь 1, введение поправки не увеличит разрядность суммы больше чем на 1 разряд

Пример 6-4.

В варианте A операнды и представлены в формате двойной точности стандарта IEEE 754. Операнд нормализованное число с максимальным смещенным порядком . Операнд ненормализованное число со смещенным порядком . Поправка смещения в двойном формате (раздел 5.5). При сложении смещенных порядков принято .

 
 
A B 111 1111 1110 111 1111 1110 (204710) + 110 0000 0001 + 110 0000 0001 (153710) 1101 1111 1111 1101 1111 1111 (358310)


В варианте B операнд представлен в двойном, а операнд – в одинарном формате стандарта IEEE 754. Смещенные порядки , а . Результат умножения должен быть вычислен в двойном формате. Поэтому поправка смещения (такая же, как в варианте A). Поскольку операнд ненормализованный, то при сложении его смещенный порядок заменен константой .

Совпадение сумм смещенных порядков в вариантах A и B, несмотря на очевидное различие сумм порядков, обусловлено несовпадением их смещений. Действительно.

В варианте A , . Сумма . Смещение суммы порядков равно . Поэтому .

В варианте B , . Сумма . Однако в варианте B смещение . Поэтому , и коды сумм порядков в вариантах A и B совпадают.

Когда оба операнда ненормализованные, то обязательно складывается исключительная ситуация потери значимости. Если обработка прерывания не выполняется, результат принимают равным 0. Если сигнал прерывания не заблокирован, то обработчику прерывания должен быть отправлен результат умножения в формате более длинного операнда полученный умножением абсолютно точного результата на и затем округленного до точности формата. Для получения этого результата можно выполнить умножение по тем же правилам, что и при умножении нормализованного операнда на ненормализованный, но при сложении смещенных порядков равных 0 один из них заменяют 1, а другой константой .





Дата публикования: 2014-12-11; Прочитано: 708 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...