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 the binary16 floating point format. 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?binary16 en Python
5
A
Respuesta
4
Puede hacerlo más o menos igual que lo harías en C - es decir, creo que, 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
1
Apareció una búsqueda rápida en Google http://packages.python.org/bigfloat/ que dice que tiene un contexto para la manipulación de binary16
números de 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).
2
This guy's blog post ofrece una implementación en ambos y python. Él usa el módulo struct
, luego lo decodifica manualmente. No es tan complicado una conversión.
Cuestiones relacionadas
- 1. en Python
- 2. en Python
- 3. en Python
- 4. en Python
- 5. código python para comparar imágenes en Python
- 6. Nuevo en Python ... Python 3 y Matplotlib
- 7. Python - ¿Cómo cortar una cuerda en Python?
- 8. Lisp "algo" en Python?
- 9. Python 2.7 en Ubuntu
- 10. Python - importar en if
- 11. Distribución exponencial en Python
- 12. Autenticación NTLM en Python
- 13. media armónica en python
- 14. Búfer binario en Python
- 15. multiprocesamiento imap_unordered en python
- 16. Python como en C++
- 17. MSSQL en python 2.7
- 18. Imprimir números en python
- 19. search_fields en python django
- 20. Usar Python en MAMP
- 21. Entender objetos en Python
- 22. Editar Distancia en Python
- 23. Reconocer imágenes en Python
- 24. consulta LDAP en Python
- 25. Reparar rutas '../../' en python
- 26. paréntesis en Python Conditionals
- 27. Trazado científico en Python
- 28. Logaritmo inexacto en Python
- 29. rendimiento str en Python
- 30. Extraño resultado en Python