Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:zahlensysteme_hof [2022-06-03 13:38] – angelegt hof | gf_informatik:zahlensysteme_hof [2024-05-06 05:26] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| # Zahlensysteme | # Zahlensysteme | ||
| + | ## Umwandlung Dezimal - Binär | ||
| + | <code python binary_conversion.py> | ||
| + | def bin_to_dec(b): | ||
| + | """ | ||
| + | result = 0 | ||
| + | for digit in b: | ||
| + | result = result * 2 | ||
| + | if digit == ' | ||
| + | result = result + 1 | ||
| + | return result | ||
| + | |||
| + | def dec_to_bin(number): | ||
| + | """ | ||
| + | result = '' | ||
| + | while number > 0: | ||
| + | digit = number % 2 | ||
| + | number = number // 2 | ||
| + | result = result + str(digit) | ||
| + | return result | ||
| + | </ | ||
| + | ## Arithmetik | ||
| <code python binary_arithmetics.py> | <code python binary_arithmetics.py> | ||
| - | # " | ||
| def gegenzahl(b, | def gegenzahl(b, | ||
| + | """ | ||
| # 1. gewünschte Anzahl bits | # 1. gewünschte Anzahl bits | ||
| while len(b) < stellen: | while len(b) < stellen: | ||
| b = " | b = " | ||
| + | |||
| # 2. Bits invertieren (0->1, 1->0) | # 2. Bits invertieren (0->1, 1->0) | ||
| result = "" | result = "" | ||
| Zeile 16: | Zeile 37: | ||
| else: | else: | ||
| result = result + " | result = result + " | ||
| + | |||
| # 3. plus 1 | # 3. plus 1 | ||
| - | return addition(result, | + | return addition(result, |
| - | + | ||
| - | def addition(one, | + | def addition(one, |
| + | """ | ||
| # sicherstellen, | # sicherstellen, | ||
| - | while len(one) < len(two): | + | while len(one) < stellen: |
| one = " | one = " | ||
| - | while len(one) > len(two): | + | while len(two) |
| two = " | two = " | ||
| # repetiere Folgendes: | # repetiere Folgendes: | ||
| Zeile 30: | Zeile 52: | ||
| # | # | ||
| # | # | ||
| + | |||
| # one: " | # one: " | ||
| + | |||
| # 0 1 2 | # 0 1 2 | ||
| # 2 1 0 | # 2 1 0 | ||
| - | index = len(one) | + | index = stellen |
| behalte = 0 | behalte = 0 | ||
| result = "" | result = "" | ||
| Zeile 41: | Zeile 63: | ||
| bit_one = int(one[index]) | bit_one = int(one[index]) | ||
| bit_two = int(two[index]) | bit_two = int(two[index]) | ||
| + | |||
| sum = bit_one + bit_two + behalte | sum = bit_one + bit_two + behalte | ||
| rest = sum % 2 | rest = sum % 2 | ||
| behalte = sum // 2 | behalte = sum // 2 | ||
| + | |||
| result = str(rest) + result | result = str(rest) + result | ||
| index = index - 1 | index = index - 1 | ||
| + | |||
| return result | return result | ||
| + | |||
| # Returns one - two | # Returns one - two | ||
| def subtraktion(one, | def subtraktion(one, | ||
| + | """ | ||
| + | stellen = len(one) | ||
| # gegenzahl von two | # gegenzahl von two | ||
| - | komplement = gegenzahl(two, | + | komplement = gegenzahl(two, |
| # .. und addieren | # .. und addieren | ||
| - | return addition(one, | + | return addition(one, |
| - | + | ||
| - | print(addition(" | + | print(addition(" |
| print(subtraktion(" | print(subtraktion(" | ||
| </ | </ | ||