Seite anzeigenÄltere VersionenLinks hierherCopy this pageFold/unfold allNach oben Diese Seite ist nicht editierbar. Du kannst den Quelltext sehen, jedoch nicht verändern. Kontaktiere den Administrator, wenn du glaubst, dass hier ein Fehler vorliegt. # Zahlensysteme ## Umwandlung Dezimal - Binär <code python binary_conversion.py> def bin_to_dec(b): """Berechnet die Zahl, die von einem Binärstring dargestellt wird.""" result = 0 for digit in b: result = result * 2 if digit == '1': result = result + 1 return result def dec_to_bin(number): """Berechnet die Binärdarstellung einer Zahl mit dem Restwertalgorithmus.""" result = '' while number > 0: digit = number % 2 number = number // 2 result = result + str(digit) return result </code> ## Arithmetik <code python binary_arithmetics.py> def gegenzahl(b, stellen): """Berechnet das Zweierkomplement einer Binärzahl in der gewünschten Anzahl Stellen.""" # 1. gewünschte Anzahl bits while len(b) < stellen: b = "0" + b # 2. Bits invertieren (0->1, 1->0) result = "" for bit in b: if bit == "0": result = result + "1" else: result = result + "0" # 3. plus 1 return addition(result, "1", stellen) def addition(one, two, stellen=4): """Berechnet one + two in der gewünschten Anzahl Stellen.""" # sicherstellen, dass beide Zahlen gleich lang sind: while len(one) < stellen: one = "0" + one while len(two) < stellen: two = "0" + two # repetiere Folgendes: # von hinten nach vorne # addieren wir ziffern paare # merken uns rest -> resultat und behalte # one: "101" # 0 1 2 # 2 1 0 index = stellen - 1 behalte = 0 result = "" while index >= 0: bit_one = int(one[index]) bit_two = int(two[index]) sum = bit_one + bit_two + behalte rest = sum % 2 behalte = sum // 2 result = str(rest) + result index = index - 1 return result # Returns one - two def subtraktion(one, two): """Berechnet one - two in der gewünschten Anzahl Stellen.""" stellen = len(one) # gegenzahl von two komplement = gegenzahl(two, stellen) # .. und addieren return addition(one, komplement, stellen) print(addition("11", "11")) print(subtraktion("1011", "0011")) </code> gf_informatik/zahlensysteme_hof.txt Zuletzt geändert: 2024-05-06 05:26von hof