Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:zahlensysteme:binary_solutions [2026-04-28 15:22] – [Binär-Addition] hof | gf_informatik:zahlensysteme:binary_solutions [2026-05-25 05:20] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 77: | Zeile 77: | ||
| </ | </ | ||
| ### Binär-Addition | ### Binär-Addition | ||
| + | |||
| + | Die Addition von Binärzahlen erfolgt wie die schriftliche Addition von Dezimalzahlen: | ||
| + | |||
| + | {{.: | ||
| + | |||
| Umsetzungsidee: | Umsetzungsidee: | ||
| * Beide Strings paarweise [[gf_informatik: | * Beide Strings paarweise [[gf_informatik: | ||
| * An jeder Position das Bit aus `a` und `b` sowie einen allfälligen Übertrag addieren. | * An jeder Position das Bit aus `a` und `b` sowie einen allfälligen Übertrag addieren. | ||
| + | * Achtung: Die einzelnen Positionen eines Strings sind die Buchstaben `' | ||
| * Das Resultat-Bit an der Position ist `1`, wenn die Summe `1` oder `3` ist, sonst `0`. | * Das Resultat-Bit an der Position ist `1`, wenn die Summe `1` oder `3` ist, sonst `0`. | ||
| * Tipp: also genau das Resultat von `summe % 2`... | * Tipp: also genau das Resultat von `summe % 2`... | ||
| Zeile 85: | Zeile 91: | ||
| * Also genau dem Resultat von ...? | * Also genau dem Resultat von ...? | ||
| - | < | + | < |
| <script type=" | <script type=" | ||
| def binary_add(a, | def binary_add(a, | ||
| Zeile 93: | Zeile 99: | ||
| # 3) An jeder Stelle: Resultat und Übertrag berechnen. | # 3) An jeder Stelle: Resultat und Übertrag berechnen. | ||
| - | print(binary_add(" | + | print(binary_add(" |
| </ | </ | ||
| <script type=" | <script type=" | ||
| Zeile 122: | Zeile 128: | ||
| digit_b = int(b[index]) | digit_b = int(b[index]) | ||
| sum = digit_a + digit_b + carry | sum = digit_a + digit_b + carry | ||
| - | bit = sum % 2 | + | bit = sum % 2 # Resultat-Bit ist 1, wenn die Summe ungerade ist |
| - | carry = sum // 2 | + | carry = sum // 2 # Übertrag ist 1, wenn die Summe 2 oder 3 ist |
| out = str(bit) + out | out = str(bit) + out | ||
| Zeile 135: | Zeile 141: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| ### Binär-Subtraktion | ### Binär-Subtraktion | ||
| - | Für die Subtraktion im Binärsystem wird das _Zweierkomplement_ | + | Für die Subtraktion im Binärsystem wird das {{gf_informatik: |
| - | 1. Auffüllen auf die gewünschte Anzahl Bits | + | 1. Auffüllen |
| 2. Invertieren | 2. Invertieren | ||
| 3. `" | 3. `" | ||
| - | Der Code aus der vorherigen Aufgabe wird also benötigt. | + | Der Code aus der vorherigen Aufgabe wird für die Addition |
| - | < | + | < |
| <script type=" | <script type=" | ||
| def invert(b): | def invert(b): | ||