Quiero convertir un número binario en un número flotante. He aquí un ejemplo de una posibilidad:Cómo convertir un binario (cadena) en un valor flotante?
>>> float(-0b1110)
me da el resultado correcto:
Por desgracia, estoy trabajando con binarios cuerdas, es decir, necesito algo así como float('-0b1110')
.
Sin embargo, esto no funciona:
>>> float('-0b1110')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
He intentado utilizar binascii.a2b_qp(string[, header])
que convierte un bloque de datos imprimibles citado de nuevo a binario y devuelve los datos binarios. Pero con el tiempo, me sale el mismo error:
>>> float(binascii.a2b_qp('-0b1110'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
entiendo los casos en los que el número de salida es un número entero, pero lo que si quiero obtener el número 12.546? ¿A qué llamaría la función para la cadena binaria entonces?
¿Cómo sería la representación binaria de '12.546' parecer - es IEEE 754 binary32 o binary64? Si no, ¿cómo se representa el punto binario o dónde se supone su posición en la cadena? – martineau
La representación binaria del flotante 12.546 es IEEE 754 binary64. – deedee
OK, pero ''0b10110011000000'' es la representación binary64 de IEEE 754 de' -14.0', no '-0b1110'. – martineau