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 10:13] 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 ### Binär-Subtraktion
  
 <code python> <code python>
 def invert(b): def invert(b):
-    Erstellt einen neuen String, wobei 0en und 1en vertauscht sind.+    """Erstellt einen neuen String, wobei 0en und 1en vertauscht sind."""
     result = ""     result = ""
     for digit in b:     for digit in b:
Zeile 80: Zeile 79:
  
 def zweierkomplement(b, stellen=8): def zweierkomplement(b, stellen=8):
 +    """Berechnet das Zweierkomplement von b in der gewünschten Anzahl Stellen."""
     # 1) Auffüllen auf stellen bits     # 1) Auffüllen auf stellen bits
     b = fill_zeros(b, stellen)     b = fill_zeros(b, stellen)
Zeile 88: Zeile 88:
  
 def binary_subtraction(a, b, stellen=8): def binary_subtraction(a, b, stellen=8):
 +    """Subtraktion als Addition des Zweierkomplements."""
     complement = zweierkomplement(b, stellen)     complement = zweierkomplement(b, stellen)
     result = binary_add(a, complement)     result = binary_add(a, complement)
-    if len(result) > stellen: +    result = result[-stellen:]  # Vorderstes Bit auslassen
-        result = result[1:]  # Vorderstes Bit auslassen+
     return result     return result
 </code> </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.1747044810.txt.gz
  • Zuletzt geändert: 2025-05-12 10:13
  • von hof