Инструкция к выполнению работы:
  • в работе вам необходимо написать программы на языке Python, реализующие описанные алгоритмы преобразования чисел;
  • во всех заданиях на вход подаётся натуральное число N;
  • все преобразования выполняйте строго по шагам, указанным в условии;
  • результат выводите в соответствии с требуемой системой счисления.

Требования к решениям:

  • все задания выполняются в одном файле .py;
  • решение каждого задания оформляйте в виде функции;
  • название функции это f + № задания. Например: функция 1-го задания — f1(N), второго — f2(N);
  • для перевода в десятичную систему счисления использовать int(num, base), например:
    a = '111010' # двоичная запись числа
    n = int(a, 2) # перевод в десятичную систему
  • для перевода из десятичной в другие системы счисления использовать функцию:
    def to_base(num, base):
        digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        result = ''
        while num > 0:
            result += digits[num % base]
            num //= base
        return result[::-1]
    
    например, для перевода в двоичную систему счисления:
    a = 58 # десятичное число
    b = to_base(a, 2) # перевод в двоичную систему
    print(b) # вывод: 111010

Пример оформления решения

    def f0(N): 
        b = bin(N)[2:]
        b += '1'
        R = int(b, 2)
        return R

    if f0(5) == 11 and f0(6) == 13:
        print('Задание 0 выполнено верно')
    else:
        print('Задание 0 выполнено неверно')

Задания

Задание 1

1. Перевести число в двоичную систему.
2. Если в двоичной записи последняя цифра равна 0 — дописать 1, иначе дописать 0.
3. Перевести результат в десятичную систему.

Тесты:
f1(5) == 10
f1(8) == 17

Задание 2

1. Перевести число в двоичную систему.
2. Если в двоичной записи количество единиц чётное — дописать 10, иначе 01.
3. Перевести результат в восьмеричную систему.

Тесты:
f2(6) == '32'
f2(7) == '35'

Задание 3

1. Перевести число в троичную систему.
2. Если сумма цифр* двоичной записи делится на 3 — дописать 2, иначе 1.
3. Перевести результат в двоичную систему.
*сумма цифр — это сумма всех цифр в записи числа. Например, сумма цифр числа 1011 равна 1 + 0 + 1 + 1 = 3.

Тесты:
f3(5) == '10001'
f3(8) == '11001'

Задание 4

1. Перевести число в двоичную систему.
2. Если двоичная запись числа оканчивается на 1 — дописать справа 10, иначе 11.
3. Перевести в семиричную систему.
4. Если первая цифра чётная — дописать слева 3, иначе справа 5.
5. Перевести в десятичную систему.

Тесты:
f4(3) == 161
f4(10) == 190

Задание 5

1. Перевести число в двоичную систему.
2. Заменить: 0 → 01, 1 → 10.
3. Перевести в десятичную систему.

Тесты:
f4(5) == 38
f4(3) == 10