Надоело искать библиотеку или способ что бы перевести число 17 в 15 ричную систему счисления НЕ В 16 РИЧНУЮ А В 15
все сайты говорят а бездарном методе hex который преобразовывает в 16 РИЧНУЮ СИСТЕМУ повторю мне нужно 15!!! Вообщем если знаете какие нибудь библиотеки а лучше встроенные функции в питоне для преобразования в любые системы счисления, мало ли на егэ не будет пипа)
Нужна всего одна функция для перевода из любой системы счисления в любую другую. Этот вариант охватывает все системы от 2 до 50. Если надо больше 50, то надо увеличить алфавит. def convert_base(num, to_base=10, from_base=10):
# first convert to decimal number
if isinstance(num, str):
n = int(num, from_base)
else:
n = int(num)
# now convert decimal to 'to_base' base
alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n < to_base:
return alphabet[n]
else:
return convert_base(n // to_base, to_base) + alphabet[n % to_base]
Для этого НЕ надо использовать библиотеки. Перевод неотрицательного целого числа в любую систему счисления - элементарное учебное задание, реализуемое несколькими строчками простейшего кода: # перевод value в систему по основанию base ∈ [2; 36]
def conv(value, base):
res = ''
while True:
res = '0123456789abcdefghijklmnopqrstuvwxyz'[value % base] + res
value //= base
if value == 0: return res
print(conv(123456, 15)) # число 123456 в 15-ричной системе Для любых целых чисел будет ненамного сложнее: def conv(value, base):
res, sign, value = '', ['', '-'][value < 0], abs(value)
while True:
res = '0123456789abcdefghijklmnopqrstuvwxyz'[value % base] + res
value //= base
if value == 0: return sign + res
Код: def convert_to_base(number, base):
if not (2 <= base <= 36):
raise ValueError("База должна быть от 2 до 36"
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = ""
is_negative = number < 0
number = abs(number)
while number > 0:
remainder = number % base
result = digits[remainder] + result
number //= base
if is_negative:
result = "-" + result
return result or "0"
# Ввод числа и основания системы счисления от пользователя
try:
number = int(input("Введите число: ")
base = int(input("Введите основание системы счисления (от 2 до 36): ")
converted_number = convert_to_base(number, base)
print(f"Число {number} в {base}-ричной системе счисления: {converted_number}"
except ValueError as e:
print(f"Ошибка: {e}"
Этот код преобразует число 17 в двоичное представление, а затем заменяет каждую пару битов на одну цифру в 15-ричной системе счисления.
Если вам нужно использовать другие системы счисления, вы можете изменить параметр `base` в функции `format()`. Например, для перевода в 10-ричную систему счисления используйте `base=10`.