HHalfJunia
Сценарии

Сценарии работы с кодом · Декодирование значений binary16

03
Вокруг ваших задач

Конкретная отправная точка

Декодируйте одно беззнаковое 16-битное слово binary16 в числовое значение. Проверьте знаковые нули, субнормальные числа, бесконечности и NaN, отклоняя логические значения и выход за диапазон без сохранения полезной нагрузки NaN.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

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

04

Проверьте результат

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

Декодирование значений binary16

Конкретная отправная точка
from math import copysign, ldexp

def binary16_value(word):
    if type(word) is not int or not 0 <= word <= 65535:
        raise ValueError("binary16.word")
    sign = -1.0 if word & 0x8000 else 1.0
    exponent, fraction = (word >> 10) & 31, word & 1023
    if exponent == 31:
        return copysign(float("nan") if fraction else float("inf"), sign)
    value = ldexp(fraction, -24) if exponent == 0 else ldexp(1024+fraction, exponent-25)
    return copysign(value, sign)

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

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗