Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разделы 6.1-6.2.doc
Скачиваний:
0
Добавлен:
14.08.2019
Размер:
285.18 Кб
Скачать

6. Арифметические операции над числами с плавающей точкой

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

При успешном выполнении операции система передает пользователю результат выполнения операции. Обычно по умолчанию система поставляет результат в формате длиной не меньше чем большая из длин форматов операндов.

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

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

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

Если исключительная ситуация не сложилась и один или оба операнда имеют значения 0, или простое NaN, выполнение операции продолжается по правилам рекомендуемым стандартом IEEE 754 до получения результата.

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

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

Приведенные сведения о системе выполняющей арифметические операции не имеют прямого отношения к арифметике. Однако они полезны для лучшего понимания особенностей выполнения арифметических операций с плавающей точкой.

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