So konvertieren Sie einen String, der einen binären Bruch darstellt, in eine Zahl in Python
Nehmen wir an, wir haben einen String, der einen binären Bruch darstellt, wie zum Beispiel:
".1"
Als Dezimalzahl ist dies 0,5. Gibt es in Python eine Standardmethode, um von solchen Zeichenfolgen zu einem Zahlentyp zu wechseln (es ist nicht unbedingt wichtig, ob es sich um Binär- oder Dezimalzeichen handelt)?
Für eine ganze Zahl ist die Lösung einfach:
int("101", 2)
>>>5
int () verwendet ein optionales zweites Argument, um die Basis bereitzustellen, float () jedoch nicht.
Ich suche etwas funktionell Äquivalentes (denke ich) dazu:
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 denken das tut was ich will, obwohl ich vielleicht einige Randfälle verpasst habe.
Gibt es eine integrierte oder standardmäßige Methode, um dies in Python zu tun?