Vom Binär ins Dezimalsystem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bergsteiger
User
Beiträge: 1
Registriert: Dienstag 22. Juni 2021, 13:55

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)
______________________________
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Falsch ist, wie Du die Funktion definiert hast, was innerhalb der Funktion steht und was außerhalb der Funktion steht.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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()
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten