Seite 1 von 1

Vom Binär ins Dezimalsystem

Verfasst: Dienstag 22. Juni 2021, 14:10
von Bergsteiger
Kann mir jemand helfen, was hier falsch ist?
_______________________
# Initialisierung der Variablen
def umrechnen(wert):
zahl = 0
zwischenergebnis = 0
summe = 0
# eine Liste für die Reste
liste = []
# den Wert einlesen
wert = int(input("Geben Sie eine Dualzahl ein, die umgerechnet werden soll: "))
# die Schleife
while wert > 0:
zwischenergebnis = wert%10
zwischenergebnis = zwischenergebnis*(2**zahl)
liste.append(zwischenergebnis)
zahl = zahl + 1
wert = wert//10
for wert in liste:
summe = summe + wert
# und ausgeben
print("Das Ergebnis der Umrechnung lautet", + summe)

umrechnen(wert)
______________________________

Re: Vom Binär ins Dezimalsystem

Verfasst: Dienstag 22. Juni 2021, 14:41
von noisefloor
Hallo,

bitte den Code in einen Codeblock setzen, damit der Code auch lesbar ist. Den Codeblock bekommst du, indem du in der Menüleiste über dem Eingabefenster auf die </> Schaltfläche klickst.

Was funktioniert denn an deinem Code nicht so, wie du es gerne hättest?

Gruß, noisefloor

Re: Vom Binär ins Dezimalsystem

Verfasst: Dienstag 22. Juni 2021, 14:56
von Sirius3
Falsch ist, wie Du die Funktion definiert hast, was innerhalb der Funktion steht und was außerhalb der Funktion steht.

Re: Vom Binär ins Dezimalsystem

Verfasst: Dienstag 22. Juni 2021, 18:28
von __blackjack__
Von Binärdarstellung zu ganzer Zahl und von da zur Dezimaldarstellung geht sehr einfach mit `int()` und `str()`. Da braucht man wenig eigenen Code schreiben. `str()` braucht man nicht einmal explizit wenn man die ganze Zahl mit `print()` oder etwas ähnlichem ausgibt, wo eine Umwandlung in eine Zeichenkette schon drin steckt.

Re: Vom Binär ins Dezimalsystem

Verfasst: Mittwoch 7. Juli 2021, 12:01
von __blackjack__
Simple Lösung ohne Fehlerbehandlung:

Code: Alles auswählen

#!/usr/bin/env python3


def main():
    print(
        int(
            input(
                "Geben Sie eine Dualzahl ein, die umgerechnet werden soll: "
            ),
            2,
        )
    )


if __name__ == "__main__":
    main()