Я хочу преобразовать двоичное число в число с плавающей запятой. Вот пример возможности:
>>> float(-0b1110)
дает правильный результат:
-14.0
К сожалению, я работаю с двоичными строками, т.е. мне нужно что-то вроде float('-0b1110')
.
Однако это не работает:
>>> float('-0b1110')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
Я попытался использовать binascii.a2b_qp(string[, header])
, который преобразует блок данных с кавычками в двоичный файл и возвращает двоичные данные. Но в итоге я получаю ту же ошибку:
>>> float(binascii.a2b_qp('-0b1110'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
Я понимаю случаи, когда выходной номер является целым числом, но что, если я хочу получить номер 12.546? Что бы вызовет функция для двоичной строки, которая выглядит так?