Как преобразовать десятичные числа в двоичные и двоичные в десятичные в Python без операторов bin и int ?
Мне нужно преобразовать десятичные числа в двоичные и двоичные в десятичные, но я все время получаю неправильные ответы. Мне не разрешается использовать bin и другие встроенные операторы в Pycharm, которые могли бы помочь мне преобразовать ответ.
"""Converter.""" def dec_to_binary(dec: int) -> str: """ Convert decimal number into binary. :param dec: decimal number to convert :return: number in binary """ if dec > 1: dec_to_binary(dec // 2) print(dec % 2, end='') return def binary_to_dec(binary: str) -> int: """ Convert binary number into decimal. :param binary: binary number to convert :return: number in decimal """ decimal, i, n = 0, 0, 0 while (binary != 0): dec = binary % 10 decimal = decimal + dec * pow(2, i) binary = binary // 10 i += 1 print(decimal) if __name__ == "__main__": print(dec_to_binary(145)) # -> 10010001 print(dec_to_binary(245)) # -> 11110101 print(dec_to_binary(255)) # -> 11111111 print(binary_to_dec("1111")) # -> 15 print(binary_to_dec("10101")) # -> 21 print(binary_to_dec("10010")) # -> 18
Что я уже пробовал:
Я пробовал эти коды, но обычно получаю 2 десятичных знака, в конце концов он говорит, например, 100011 и ни одного...