Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:zahlensysteme:binary_solutions [2026-04-28 15:22] – [Binär-Addition] hofgf_informatik:zahlensysteme:binary_solutions [2026-05-25 05:20] (aktuell) hof
Zeile 77: Zeile 77:
 </bottom-exercise> </bottom-exercise>
 ### Binär-Addition ### Binär-Addition
 +
 +Die Addition von Binärzahlen erfolgt wie die schriftliche Addition von Dezimalzahlen: Jede Stelle wird für sich addiert, dabei ergibt sich der Wert für diese Stelle im Resultat sowie der Übertrag ("Behalte") für die nächste Stelle. Ein Übertrag erfolgt, sobald die Stellensumme die Zahl 2 erreicht.
 +
 +{{.:binary_solutions:pasted:20260428-152720.png?nolink&283}}
 +
 Umsetzungsidee: Umsetzungsidee:
   * Beide Strings paarweise [[gf_informatik:zahlensysteme:binary_collection#rueckwaerts|von rechts nach links]] durchlaufen.   * Beide Strings paarweise [[gf_informatik:zahlensysteme:binary_collection#rueckwaerts|von rechts nach links]] durchlaufen.
   * 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 `'0'` oder `'1'`, nicht die Zahlen `0` oder `1`. Wandle sie mit `int()` in Zahlen um!
   * 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 ...?
  
-<bottom-exercise id="binary-add" hidesolution>+<bottom-exercise id="binary-add" showsolution>
 <script type="text/x-starter"> <script type="text/x-starter">
 def binary_add(a, b): def binary_add(a, b):
Zeile 93: Zeile 99:
     # 3) An jeder Stelle: Resultat und Übertrag berechnen.     # 3) An jeder Stelle: Resultat und Übertrag berechnen.
  
-print(binary_add("101010", "10111"))+print(binary_add("11001011", "10101110"))
 </script> </script>
 <script type="text/x-test"> <script type="text/x-test">
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:
 </script> </script>
 </bottom-exercise> </bottom-exercise>
 +
  
 ### Binär-Subtraktion ### Binär-Subtraktion
-Für die Subtraktion im Binärsystem wird das _Zweierkomplement_ des Subtrahends _addiert_. Wir benötigen also Code für das Berechnen des Zweierkomplements:+Für die Subtraktion im Binärsystem wird das {{gf_informatik:gfif_zahlensysteme_dossier_hof.pdf#subsection.3.4|Zweierkomplement}} des Subtrahends _addiert_. Wir benötigen also Code für das Berechnen des Zweierkomplements:
  
-1. Auffüllen auf die gewünschte Anzahl Bits+1. Auffüllen mit Nullen auf die gewünschte Anzahl Bits
 2. Invertieren 2. Invertieren
 3. `"1"` addieren mit Binär-Addition 3. `"1"` addieren mit Binär-Addition
  
-Der Code aus der vorherigen Aufgabe wird also benötigt.+Der Code aus der vorherigen Aufgabe wird für die Addition benötigt.
  
-<bottom-exercise id="binary-subtract" hidesolution style="max-height:20lh;">+<bottom-exercise id="binary-subtract" showsolution style="max-height:20lh;">
 <script type="text/x-starter"> <script type="text/x-starter">
 def invert(b): def invert(b):
  • gf_informatik/zahlensysteme/binary_solutions.1777389771.txt.gz
  • Zuletzt geändert: 2026-04-28 15:22
  • von hof