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)