Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:zahlensysteme_hof [2022-06-03 13:38] – angelegt hofgf_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):
 +    """Berechnet die Zahl, die von einem Binärstring dargestellt wird."""
 +    result = 0
 +    for digit in b:
 +        result = result * 2
 +        if digit == '1':
 +            result = result + 1
 +    return result
 +
 +def dec_to_bin(number):
 +    """Berechnet die Binärdarstellung einer Zahl mit dem Restwertalgorithmus."""
 +    result = ''
 +    while number > 0:
 +        digit = number % 2
 +        number = number // 2
 +        result = result + str(digit)
 +    return result
 +</code>
  
 +## Arithmetik
 <code python binary_arithmetics.py> <code python binary_arithmetics.py>
  
-#  "101" auf 4 Bit -> "0101" 
 def gegenzahl(b, stellen): def gegenzahl(b, stellen):
 +    """Berechnet das Zweierkomplement einer Binärzahl in der gewünschten Anzahl Stellen."""
     # 1. gewünschte Anzahl bits     # 1. gewünschte Anzahl bits
     while len(b) < stellen:     while len(b) < stellen:
         b = "0" + b         b = "0" + 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 + "0"             result = result + "0"
 + 
     # 3. plus 1     # 3. plus 1
-    return addition(result, "1"+    return addition(result, "1", stellen
-     +  
-def addition(one, two):+def addition(one, two, stellen=4): 
 +    """Berechnet one + two in der gewünschten Anzahl Stellen."""
     # sicherstellen, dass beide Zahlen gleich lang sind:     # sicherstellen, dass beide Zahlen gleich lang sind:
-    while len(one) < len(two):+    while len(one) < stellen:
         one = "0" + one         one = "0" + one
-    while len(one) > len(two):+    while len(two) < stellen:
         two = "0" + two         two = "0" + two
     # repetiere Folgendes:     # repetiere Folgendes:
Zeile 30: Zeile 52:
     #   addieren wir ziffern paare     #   addieren wir ziffern paare
     #   merken uns rest -> resultat und behalte     #   merken uns rest -> resultat und behalte
 + 
     # one: "101"     # one: "101"
 + 
     # 0 1 2     # 0 1 2
     # 2 1 0     # 2 1 0
-    index = len(one) - 1+    index = stellen - 1
     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, two): def subtraktion(one, two):
 +    """Berechnet one - two in der gewünschten Anzahl Stellen."""
 +    stellen = len(one)
     # gegenzahl von two     # gegenzahl von two
-    komplement = gegenzahl(two, len(one))+    komplement = gegenzahl(two, stellen)
     # .. und addieren     # .. und addieren
-    return addition(one, komplement) +    return addition(one, komplement, stellen
- +  
-print(addition("0011", "0110"))+print(addition("11", "11"))
 print(subtraktion("1011", "0011")) print(subtraktion("1011", "0011"))
 </code> </code>
  • gf_informatik/zahlensysteme_hof.1654263515.txt.gz
  • Zuletzt geändert: 2022-06-03 13:38
  • von hof