Seite 1 von 1

Umrechnung in verschiedene Zahlensysteme

Verfasst: Montag 1. März 2021, 10:18
von Ossix
Grüße,
ich will ein Programm erstellen was in verschiedene Zahlensysteme umrechnen kann.

Code: Alles auswählen

# Initialisierung der Variablen
zahl = 0
zwischenergebnis = 0
# eine Liste für die Reste
reste = []
 
# den Wert einlesen
zahl = int(input("Geben Sie den Wert ein, der umgerechnet werden soll: "))

while zahl != 0:
    # den Rest der Division durch 2 ablegen
    reste.append(zahl % 2)
    # durch 2 teilen und das ganzzahlige Ergebnis wieder zuweisen
    zahl = zahl // 2
# die Liste umdrehen
reste.reverse()
# und ausgeben
for bit in reste:
    print(bit, end = "")
habe schon mehrere sachen probiert aber es funktioniert nicht wirklich.

ich möchte das man erst die Basiszahl angeben muss und dann den wert der Umgerechnet werden soll.

ich hatte es schon mit listen versucht aber bin nicht weiter gekommen

Code: Alles auswählen

 # Initialisierung der Variablen
zahl = 0
zwischenergebnis = 0

print ("in welches Zahlensystem soll umgerechnet werden geben sie die Basiszahl 2 3 4 5 6 7 8 9:")


# eine Liste für die Reste
liste_eins =[2]
liste_zwei =[3]
liste_drei =[4]
liste_vier =[5]
liste_fuenf =[6]
liste_sechs =[7]
liste_sieben =[8]
liste_acht =[9]
reste = []

#listen füllen
liste_eins.append (zahl % 2)
liste_zwei.append (zahl % 3)
liste_drei.append (zahl % 4)
liste_vier.append (zahl % 5)
liste_fuenf.append (zahl % 6)
liste_sechs.append (zahl % 7)
liste_sieben.append (zahl % 8)
liste_acht.append (zahl % 9)
 
while zahl != 0:
    liste_eins.append (zahl1 % 2)
    liste_zwei.append (zahl2 % 3)
    liste_drei.append (zahl3 % 4)
    liste_vier.append (zahl4 % 5)
    liste_fuenf.append (zahl5 % 6)
    liste_sechs.append (zahl6 % 7)
    liste_sieben.append (zahl7 % 8)
    liste_acht.append (zahl8 % 9)
    zahl1 = zahl // 2
    zahl2 = zahl // 3
    zahl3 = zahl // 4
    zahl4 = zahl // 5
    zahl5 = zahl // 6
    zahl6 = zahl // 7
    zahl7 = zahl // 8
    zahl8 = zahl // 9
zahl = 0
zwischenergebnis = 0
while zahl:
# den Wert einlesen
zahl = int(input("Geben Sie den Wert ein, der umgerechnet werden soll: "))
while zahl != 0:
    # den Rest der Division durch 2 ablegen
    reste.append(zahl % 2)
    # durch 2 teilen und das ganzzahlige Ergebnis wieder zuweisen
    zahl = zahl // 2

# die Liste umdrehen
reste.reverse()
# und ausgeben
for bit in reste:
    print(bit, end = "")
kann mir mal bitte jemand helfen :shock:

Re: Umrechnung in verschiedene Zahlensysteme

Verfasst: Montag 1. März 2021, 11:16
von __blackjack__
@Ossix: Du hast das also für die Basis 2 wo die 2 fest im Programm steht. Da musst Du doch nur diese 2 variabel machen. Das ist grundsätzlich erst einmal die einzige, recht winzige Änderung die nur zwei Stellen im vorhandenen Programm betrifft + die Zeile in der der Benutzer nach der Basis gefragt wird.

Re: Umrechnung in verschiedene Zahlensysteme

Verfasst: Montag 1. März 2021, 11:38
von Sirius3
Anmerkungen zum Code: Variablen werden dann initialisiert, wenn sie auch gebraucht werden. Das `zahl = 0` wird nie gebraucht, weil es sofort wieder durch die Eingabe überschrieben wird. zwischenergebnis wird nie gebraucht und reste wird zu früh initialisiert, das gehört direkt für die Schleife.
Kommentare sollten auch beschreiben, warum etwas passiert, nicht das offensichtliche. Wenn man sowohl das Ergebnis als auch den Rest der Division braucht, gibt es divmod.
Für die Ausgabe könnte man join benutzen.

Code: Alles auswählen

zahl = int(input("Geben Sie den Wert ein, der umgerechnet werden soll: "))

reste = []
while zahl != 0:
    zahl, rest = divmod(zahl, 2)
    reste.append(rest)

reste.reverse()
print("".join(map(str, reste)))
Beim zweiten Code verstehe ich nicht, warum Du die Listen mit einem Wert initialisierst. Wenn man Variablennamen anfängt durchzunummerieren, will man eigentlich eine Datenstruktur, Z.B eine Liste, und Schleifen verwenden.

Re: Umrechnung in verschiedene Zahlensysteme

Verfasst: Montag 1. März 2021, 11:44
von Ossix
Grüße,
meine Frage hat sich erledigt


hatte einen kleinen denkfehler

Re: Umrechnung in verschiedene Zahlensysteme

Verfasst: Montag 1. März 2021, 11:48
von Ossix
Danke für die schnellen Antworten