Umwandlung Binär-Dezimal
def binary_to_decimal(b):
"""Wandelt Binärzahl b in Dezimalzahl um."""
d = 0
for digit in b:
d = d*2
d = d + int(digit)
return d
print(binary_to_decimal("101010"))
Umwandlung Dezimal-Binär
Restwertalgorithmus:
def decimal_to_binary(d):
"""Wandelt Dezimalzahl mit dem Restwertalgorithmus in Binärzahl um."""
b = ""
while d > 0:
r = d % 2
d = d // 2
b = str(r) + b
return b
print(decimal_to_binary(42))
def binary_add(a,b):
"""Addiert zwei Binärzahlen beliebiger Länge."""
# Ensure both operands have same lenght.
while len(b) < len(a):
b = "0" + b
while len(a) < len(b):
a = "0" + a
n = len(a)
out = ""
carry = 0
for i in range(n):
j = n-i-1
x = int(a[j]) + int(b[j]) + carry
out = str(x%2) + out
carry = x//2
if carry != 0:
out = str(carry) + out
return out
print(binary_add("101010", "10111"))