Python :: Aufgabe #298
4 Lösungen

Zahlensysteme konvertieren
Anfänger - Python
von JKooP
- 01.11.2020 um 10:53 Uhr
Schreibe eine Methode/Funktion, mit der man jede als Datentyp „String“ angegeben Zahl eines beliebigen Zahlensystems (binär, ternär, oktal, hexadezimal…) ins Dezimalsystem konvertieren kann.
Beispiele:
("1010", 2) binär --> 10 dezimal
("120", 3) ternär --> 15 dezimal
("15", 8) oktal --> 13 dezimal
("FF", 16) hexadezimal --> 255 dezimal
Viel Spaß
Beispiele:
("1010", 2) binär --> 10 dezimal
("120", 3) ternär --> 15 dezimal
("15", 8) oktal --> 13 dezimal
("FF", 16) hexadezimal --> 255 dezimal
Viel Spaß
Lösungen:
Konsolenausgabe:
# Dafür habe ich einfach bc genutzt :-)
$ cat test_298
echo "ibase=$2; $1" | bc
$ ./test_298 1010 2
10
$ ./test_298 120 3
15
$ ./test_298 15 8
13
$ ./test_298 FF 16
255

def calc_to_decimal(number: str, base: int): print("(\"%s\", %d) --> %s dezimal" % (number, base, int(number, base))) calc_to_decimal("1010", 2) calc_to_decimal("120", 3) calc_to_decimal("15", 8) calc_to_decimal("FF", 16)

data = [('1010', 2), ('120', 3), ('15', 8), (5,5), ('FF', 16)] def converte(value): try: number, base = value return (f'{value} -> {int(number, base)} dezimal') except: return f'{value} -> Falsche Eingabedaten, bitte überprüfen!' for element in data: print(converte(element))

""" #298: Zahlensysteme konvertieren Schreibe eine Methode/Funktion, mit der man jede als Datentyp „String“ angegeben Zahl eines beliebigen Zahlensystems (binär, ternär, oktal, hexadezimal…) ins Dezimalsystem konvertieren kann. """ def z_conv(z_in, z_shi): wert = int(z_in, z_shi) if wert & (1 << (z_shi - 1)): wert -= 1 << z_shi return wert print(z_conv("1010", 2)) print(z_conv("120", 3)) print(z_conv("15", 8)) print(z_conv("FF", 16)) print(z_conv("GG", 17)) print(z_conv("HH", 18))