Поделиться через


Плавающая в XR_BIAS правила преобразования

Этот раздел относится только к операционным системам Windows 7 и более поздних версий.

Следующие правила применяются для преобразования float в XR_BIAS. В этих правилах предположим, что начальное значение float равно c.

  • Если c имеет значение NaN, результат равен 0; в противном случае применяются следующие правила. NaN обозначает "не число", что означает символьную сущность, представляющую значение, недоступное в формате с плавающей запятой.

  • Выполните следующую операцию, чтобы преобразовать с плавающей шкалы в целочисленный масштаб:

    c = c * 510

    Предыдущая операция может вызвать переполнение.

  • Выполните следующую операцию для смещения:

    c = c + 384

    Предыдущая операция может вызвать переполнение.

  • Выполните одну из следующих операций для закрепления в зависимости от экспонента c:

    Если, после предвзятости, экспонент c больше или равен 2 (>= 2 или c INF), результатом является 0x3ff, что примерно эквивалентно 1,2529.

    Если, предвзятость, экспонент c меньше 0 (< 0 или c -INF), результатом является 0x0, который представляет приблизительно -0,7529.

  • Повторно интерпретировать наиболее значимые 10 бит мантиссы c в результате.

Преобразование float в XR_BIAS допускается допустимое значение 0,6f Unit-Last-Place (ULP) на стороне XR. Это означает, что после преобразования из float в XR любое значение в 0,6f ULP значения целевого формата с поддержкой представления разрешено сопоставить с этим значением. Обратите внимание, что 1 ULP бесконечно точного результата означает, что, например, реализация может усечь результаты до 32-разрядной, а не выполнять округление до ближайшей, так как это приведет к ошибке не более одного единицы в последнем (наименее важном) месте, которое представлено в число с плавающей запятой.

Стандартное требование Direct3D версии 10 для инвертирования данных также применяется.