Я работаю над проблемой, которая требует от меня преобразования шестнадцатеричного и двоичного представлений FP16 чисел с плавающей точкой в десятичное с плавающей точкой. Мне также нужно преобразовать десятичные числа с плавающей запятой в шестнадцатеричное и двоичное представления FP16.
Существует множество решений для преобразования чисел FP32. Но я специально требую FP16 представления .
Я уже нашел решение для двоичного кода FP16 в десятичное число с плавающей запятой:
a = struct.pack("H",int("0010100011110101",2))
float = np.frombuffer(a, dtype =np.float16)[0]
В основном я хочу:
двоичный код FP16 -> десятичное число с плавающей запятой (0010100011110101 -> 0,0387268066)
FP16 hex -> десятичное число с плавающей запятой (28f5 -> 0.0387268066)
десятичное число с плавающей запятой -> двоичный код FP16 (0.0387268066 -> 0010100011110101)
десятичное число с плавающей запятой -> гекс FP16 (0.0387268066 -> 28f5)