Basis#
Functie 1#
Schrijf een Python functie num_to_base_b(n, b), die een (niet negatieve) integer n en een grondtal b (van 2 tot en met 10) accepteert en een string teruggeeft die het getal n in grondtal b voorstelt.
def num_to_base_b(n, b):
result = ""
while n > 0:
result = str(n % b) + result
n = n // b
return result
Functie 2#
Daarom ga je een Python functie base_b_to_num(s, b) schrijven die een string s en een grondtal b accepteert, waarbij s een getal in grondtal b voorstelt en b een getal van 2 tot en met 10 is. De functie base_b_to_num moet een integer in grondtal 10 teruggeven die hetzelfde getal voorstelt als s.
def base_b_to_num(s, b):
result = 0
for i in range(0, len(s)):
result = result + (int(s[-1]) * b ** i)
s = s[:-1]
return result
Functie 3#
Nu kunnen we wat we geschreven hebben samenvoegen tot een functie base_to_base(b1, b2, s_in_b1) die drie argumenten accepteert, een grondtal b1, een grondtal b2 (beide met een waarde tussen 2 tot en met 10) en s_in_b1, wat een string is die een getal in grondtal b1 voorstelt.
De functie base_to_base moet een string teruggeven die dezelfde waarde in grondtal b2 vertegenwoordigt.
def base_to_base(b1, b2, s_in_b1):
num = base_b_to_num(s_in_b1, b1)
return num_to_base_b(num, b2)
Functie 4#
Schrijf een functie add(s, t) die twee binaire strings s en t accepteert en hun som als resultaat teruggeeft terugstuurt, ook als binaire string.
def add(s, t):
num1 = base_b_to_num(s, 2)
num2 = base_b_to_num(t, 2)
num = num1 + num2
return num_to_base_b(num, 2)