Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

mernok electro Профи (629), открыт 2 недели назад
Надоело искать библиотеку или способ что бы перевести число 17 в 15 ричную систему счисления НЕ В 16 РИЧНУЮ А В 15
все сайты говорят а бездарном методе hex который преобразовывает в 16 РИЧНУЮ СИСТЕМУ повторю мне нужно 15!!! Вообщем если знаете какие нибудь библиотеки а лучше встроенные функции в питоне для преобразования в любые системы счисления, мало ли на егэ не будет пипа)
4 ответа
Матвей Петров Знаток (457) 2 недели назад
Для перевода числа 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`.
mernok electroПрофи (629) 2 недели назад
СПАСИБО ОГРОМНОЕ все кричат какие они умные но у кого не спрошу никто нихрена не знает
Матвей Петров Знаток (457) mernok electro, ряльно помог иди сарказм?
mernok electroПрофи (629) 2 недели назад
Даже ии не знал
Матвей ПетровЗнаток (457) 2 недели назад
Ладно,удачи) проверишь способ напиши
mernok electro Профи (629) Матвей Петров, бл*** способ говнище не поддерживает 15 ричную систему
Андрей Высший разум (462228) 2 недели назад
Для этого НЕ надо использовать библиотеки. Перевод неотрицательного целого числа в любую систему счисления - элементарное учебное задание, реализуемое несколькими строчками простейшего кода:
 # перевод 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))
mernok electroПрофи (629) 2 недели назад
Спасибо, очень жалею что меня не научили этому за 10 лет в школе
Вертолётов 625 Мудрец (13323) 2 недели назад
Код:
 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}")
Avis Оракул (90861) 2 недели назад
Нужна всего одна функция для перевода из любой системы счисления в любую другую. Этот вариант охватывает все системы от 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]
Похожие вопросы