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 [2025-05-12 09:59] – [Binär-Addition] hofgf_informatik:zahlensysteme:binary_solutions [2025-05-17 08:12] (aktuell) – [Ausprobieren] hof
Zeile 65: Zeile 65:
  
 print(binary_add("101010", "10111"))</bottom-editor></html> print(binary_add("101010", "10111"))</bottom-editor></html>
 +### Binär-Subtraktion
 +
 +<code python>
 +def invert(b):
 +    """Erstellt einen neuen String, wobei 0en und 1en vertauscht sind."""
 +    result = ""
 +    for digit in b:
 +        if digit == "0":
 +            result = result + "1"
 +        else:
 +            result = result + "0"
 +    return result
 +
 +def zweierkomplement(b, stellen=8):
 +    """Berechnet das Zweierkomplement von b in der gewünschten Anzahl Stellen."""
 +    # 1) Auffüllen auf stellen bits
 +    b = fill_zeros(b, stellen)
 +    # 2) Invertieren (1->0, 0->1)
 +    b = invert(b)
 +    # 3) Addiere 1
 +    return binary_add(b, "1")
 +
 +def binary_subtraction(a, b, stellen=8):
 +    """Subtraktion als Addition des Zweierkomplements."""
 +    complement = zweierkomplement(b, stellen)
 +    result = binary_add(a, complement)
 +    result = result[-stellen: # Vorderstes Bit auslassen
 +    return result
 +</code>
 +
 +### Ausprobieren
 +
 +Kopiere alle Funktionen oben in die gleiche Python-Datei. Überprüfe danach die Funktionsweise:
 +
 +<code python>
 +a_dec = 42
 +b_dec = 19
 +a_bin = decimal_to_binary(a_dec)
 +b_bin = decimal_to_binary(b_dec)
 +difference_bin = binary_subtraction(a_bin, b_bin, 8)
 +difference_dec = binary_to_decimal(difference_bin)
 +print(f"{a_dec} - {b_dec} = {a_bin} - {b_bin} = {difference_bin} = {difference_dec}")
 +</code>
 +
 +Resultat:
 +<code>
 +42 - 19 = 101010 - 10011 = 00010111 = 23
 +</code>
 +
  
  • gf_informatik/zahlensysteme/binary_solutions.1747043943.txt.gz
  • Zuletzt geändert: 2025-05-12 09:59
  • von hof