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
1810430

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.