Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IEEE 754 RUS.doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
344.06 Кб
Скачать
    1. Бесконечность, NaN, ноль со знаком

6.1 Арифметические операции с бесконечностью. Арифметика бесконечности должна излагаться как ограниченный случай реальной арифметики с операндами произвольно больших величин, выходящих за пределы границ. Бесконечности должны интерпретироваться в единственном смысле, то есть, –  < (любое конечное число) <+

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

образуется из конечных операндов вследствие переполнения (7.3) или деления на нуль (7.2), при отсутствии обработки

неверный операнд (7.1).

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

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

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

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

Заметим, что формат конвертирования может быть неспособным представлять некоторые NaN. Тихие NaN должны создавать эффект подобный сигнальным NaN в операциях, которые не выдают результат с плавающей точкой. Эти операции, а именно сравнения и преобразования в формат, не имеющий NaN, обсуждаются в 5.4, 5.6, 5.7 и 7.1.

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

Если сумма двух операндов с различными знаками (или разность двух операндов с одинаковым знаком) равна нулю, знак этой суммы (или разности) должен быть + во всех режимах округления, исключая округление до – в этом режиме знак должен быть –. Однако, поддерживает знак x всегда, когда x является нулем.

Корень квадратный должен иметь знак + за исключением должен быть –0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]