Stáhněte aplikaci
Vyberte složku a před úpravou nechte asistenta přečíst příslušné soubory. Určete cíl i hranice úkolu.
Dekóduj jedno 16bitové slovo binary16 bez znaménka na číselnou hodnotu. Otestuj nuly se znaménkem, subnormální čísla, nekonečna a NaN, odmítni logické hodnoty a slova mimo rozsah bez zachování obsahu NaN.
Vyberte složku a před úpravou nechte asistenta přečíst příslušné soubory. Určete cíl i hranice úkolu.
Zvolte kompatibilní endpoint. Dostupné nástroje a kvalita odpovědí závisí na nastaveném modelu a serveru.
Kontrolujte změny a výstupy příkazů. Před přijetím výsledku spusťte kontroly projektu; vytvořený kód není automaticky otestovaný.
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
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)Před použitím zkontrolujte. Kontrolujte změny a výstupy příkazů. Před přijetím výsledku spusťte kontroly projektu; vytvořený kód není automaticky otestovaný.