Какие есть нормальные библиотеки в питоне для систем счисления? - Общение Python мододелов

Вопрос Какие есть нормальные библиотеки в питоне для систем счисления?

Регистрация
5 Июл 2013
Сообщения
98
Репутация
0
Спасибо
1
Монет
0
Надоело искать библиотеку или способ что бы перевести число 17 в 15 ричную систему счисления НЕ В 16 РИЧНУЮ А В 15

все сайты говорят а бездарном методе hex который преобразовывает в 16 РИЧНУЮ СИСТЕМУ повторю мне нужно 15!!! Вообщем если знаете какие нибудь библиотеки а лучше встроенные функции в питоне для преобразования в любые системы счисления, мало ли на егэ не будет пипа)
 
Регистрация
27 Дек 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Нужна всего одна функция для перевода из любой системы счисления в любую другую. Этот вариант охватывает все системы от 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]
 
Регистрация
16 Ноя 2012
Сообщения
98
Репутация
0
Спасибо
0
Монет
0
Для этого НЕ надо использовать библиотеки. Перевод неотрицательного целого числа в любую систему счисления - элементарное учебное задание, реализуемое несколькими строчками простейшего кода: # перевод 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

print(conv(-123456, 15))
 
Регистрация
29 Окт 2013
Сообщения
81
Репутация
-3
Спасибо
0
Монет
0
Код: 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}")
 
Регистрация
12 Июл 2013
Сообщения
104
Репутация
-3
Спасибо
0
Монет
0
Для перевода числа 17 в 15-ричную систему счисления в Python можно использовать встроенную функцию `format()` с параметром `base=15`. Вот пример кода:

```python
def convert_to_15_base(num):
return format(num, 'b')

print(convert_to_15_base(17))
```

Этот код преобразует число 17 в двоичное представление, а затем заменяет каждую пару битов на одну цифру в 15-ричной системе счисления.

Если вам нужно использовать другие системы счисления, вы можете изменить параметр `base` в функции `format()`. Например, для перевода в 10-ричную систему счисления используйте `base=10`.
 
Сверху Снизу