tipo float decimals decimales python struct floating-point format packing

decimals - python truncate float



binary16 en Python (3)

Puedes hacerlo más o menos como si lo hicieras en C, es decir, creo, más o menos así ...

def tofloat(b16): sign = -1 if b16 & 0x8000 else +1 expo = ( b16 & 0x7C00 ) >> 10 prec = b16 & 0x03FF if expo == 0: return sign * (2.0 ** -24) * prec elif expo == 0x1F: return sign * float(''inf'') prec |= 0x0400 return sign * (2.0 ** (expo - 25)) * prec

El módulo struct es útil cuando intenta convertir datos hacia y desde formatos binarios. Sin embargo, recientemente encontré una especificación de formato de archivo que usa el formato binario16 de coma flotante . Revisé la documentación de Python, pero no puedo encontrar nada que pueda convertir ay desde ella. ¿Cuál sería la mejor manera de convertir estos datos a / de las carrozas de Python?


La publicación de blog de este tipo brinda una implementación en ambos y Python. Él usa el módulo struct , luego lo decodifica manualmente. No es tan complicado una conversión.


binary16 una búsqueda rápida en Google http://packages.python.org/bigfloat/ que dice que tiene un contexto para la manipulación de binary16 coma flotante. Aunque no estoy familiarizado con el paquete, así que no puedo decirle nada sobre cómo usarlo (al menos, nada más de lo que puede leer en la documentación).