Python :: Aufgabe #168 :: Lösung #5
8 Lösungen
#168
Zahlen umwandeln: Binär zu Dezimal
Anfänger - Python
von Nachbar
- 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.
Beispiel:
Binär: 11010
Dezimal: 26
Beispiel:
Binär: 11010
Dezimal: 26
#5
von Agent_X29 (20 Punkte)
- 01.12.2017 um 15:10 Uhr
#DEZIMAL UMWANDLER
#BINÄR UMWANDLER
import time
def dezimal(b):
liste = []
zahl = 0
d = 1
for x in range(len(b)):
liste.append(1)
for x in range(len(b)):
if int(b[len(b)-x-1]) == 1:
zahl += d
d *= 2
return zahl
def binär(d):
zahlen = []
i = 1
for x in range(d):
zahlen.append(i)
i *= 2
if i > d:
i /= 2
i = int(i)
break
zahlen.reverse()
liste = []
listestr = ""
i = 0
while len(liste) < len(zahlen):
if zahlen[i] <= d:
liste.append(1)
d -= zahlen[i]
else:
liste.append(0)
i += 1
for x in liste:
listestr += str(x)
return listestr
def start():
print("\n"*50)
print("Binär in Dezimal | Dezimal in Binär")
print("")
print("Binärzahl eingeben [B]")
print("Dezimalzahl eingeben [D]")
print("\n")
choice = input(">> ")
zahl = 0
try:
if (choice == "B") or (choice == "b"):
print("\n"*50)
print("Gebe eine binäre Zahl ein:")
print("\n")
zahl = int(input(">>"))
for x in str(zahl):
if (x != "1") and (x != "0"):
print("Das ist keine binäre Zahl. BSP: 11010 (=26)")
input()
start()
print("Umgewandelt: " + str(dezimal(str(zahl))))
input()
start()
elif (choice == "D") or (choice == "d"):
print("\n"*50)
print("Gebe eine dezimale Zahl ein:")
print("\n")
zahl = int(input(">>"))
print("Umgewandelt: " + str(binär(zahl)))
input()
start()
else:
print("Eingabe wurde nicht erkannt!")
input()
start()
except Exception:
print("ERROR")
input()
start()
start()Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
