Python :: Aufgabe #168 :: Lösung #5

8 Lösungen Lösungen öffentlich
#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
#5
vote_ok
von Agent_X29 (20 Punkte) - 01.12.2017 um 15:10 Uhr
Quellcode ausblenden Python-Code
#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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben