Как преобразовать строку, представляющую двоичную дробь, в число в Python
Давайте предположим, что у нас есть строка, представляющая двоичную дробь, такую как:
".1"
Как десятичное число это 0,5. Существует ли в Python стандартный способ перехода от таких строк к числовому типу (не важно, является ли он двоичным или десятичным).
Для целого числа решение является простым:
int("101", 2)
>>>5
int () принимает необязательный второй аргумент для предоставления базы, а float () - нет.
Я ищу что-то функционально эквивалентное (я думаю) этому:
def frac_bin_str_to_float(num):
"""Assuming num to be a string representing
the fractional part of a binary number with
no integer part, return num as a float."""
result = 0
ex = 2.0
for c in num:
if c == '1':
result += 1/ex
ex *= 2
return result
I думать это делает то, что я хочу, хотя я вполне мог пропустить некоторые крайние случаи.
Есть ли встроенный или стандартный метод сделать это в Python?