Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как осуществить перевод числа в любую систему счисления на Python?

  1. Как осуществить перевод числа в любую систему счисления на Python?

    Всем привет! Хочу разобраться в теме перевода числа в любую систему счисления на Python. Существует ли какой-нибудь стандартный метод или библиотека, которая может помочь с этим? Также рассматриваю написание собственного алгоритма. Буду признателен за примеры кода и пояснения.



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Для перевода числа в любую систему счисления можно использовать встроенную функцию `int` для преобразования в десятичное значение, и кастомную функцию для последующего перевода. Вот пример:

    Программный код:
    def to_base(nb):
        
    convert_string "0123456789ABCDEF"
        
    if b:
            return 
    convert_string[n]
        else:
            return 
    to_base(// b, b) + convert_string[n % b]

    num 255
    base 
    16
    print(to_base(numbase))  # Должно вывести FF 
    Обычные библиотеки не включают такие функции напрямую, но можно задействовать пакет `numpy` для работы с массивами, если нужны массивы чисел.

  4. Цитата Сообщение от AlexRiver
    Привет! Для перевода числа в любую систему счисления можно использовать встроенную функцию `int` для преобразования в десятичное значение, и кастомную функцию для последующего перевода. Вот пример:

    Программный код:
    def to_base(nb):
        
    convert_string "0123456789ABCDEF"
        
    if b:
            return 
    convert_string[n]
        else:
            return 
    to_base(// b, b) + convert_string[n % b]

    num 255
    base 
    16
    print(to_base(numbase))  # Должно вывести FF 
    Обычные библиотеки не включают такие функции напрямую, но можно задействовать пакет `numpy` для работы с массивами, если нужны массивы чисел.
    Крутой алгоритм! Только не забудь, что для очень больших чисел и систем счисления может потребоваться оптимизация по памяти и скорости.

  5. Хай! Да, можно сделать это самому или использовать библиотеку. Если делаешь свой алгоритм, проще всего раскладывать число на остатки в цикле. Глянь на это:

    Программный код:
    def convert_to_base(numbase):
      
    results = []
      while 
    num 0:
          
    results.append(str(num base))
          
    num num // base
      
    return ''.join(reversed(results))

    print(
    convert_to_base(25516))  # Должно вывести 255 

  6. Цитата Сообщение от Маргарита Александровна
    Хай! Да, можно сделать это самому или использовать библиотеку. Если делаешь свой алгоритм, проще всего раскладывать число на остатки в цикле. Глянь на это:

    Программный код:
    def convert_to_base(numbase):
      
    results = []
      while 
    num 0:
          
    results.append(str(num base))
          
    num num // base
      
    return ''.join(reversed(results))

    print(
    convert_to_base(25516))  # Должно вывести 255 
    Неплохой способ! Только в примере у тебя вывод не корректный, там 16 должно быть. Все правильно?

  7. Всем салют! Столкнулся с этим недавно. В стандартной библиотеке Python есть функция `int()` для перевода числа в десятичную систему и метод `.format()` для перевода из десятичной в любую другую систему. Например:

    Программный код:
    number 255
    base 
    16
    result 
    format(number'x')
    print(
    result)  # Должно вывести 'ff' 

  8. Цитата Сообщение от nikkarina
    Всем салют! Столкнулся с этим недавно. В стандартной библиотеке Python есть функция `int()` для перевода числа в десятичную систему и метод `.format()` для перевода из десятичной в любую другую систему. Например:

    Программный код:
    number 255
    base 
    16
    result 
    format(number'x')
    print(
    result)  # Должно вывести 'ff' 
    Ага, .format() реально спасает! Только вот с кастомными системами счисления заморочиться придется.

  9. Эй! Для гибкости можно кстати майку с помощью сторонних библиотек, например `numpy` или `scipy`, но у них нет такой функционала из коробки. Если все же решишь писать с нуля, важно корректно рассчитывать остатки и целое для разных баз. Вот базовый пример, как это может выглядеть:

    Программный код:
    def convert_base(numbase):
        
    convert_string "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        
    result ""
        
    while num 0:
            
    result convert_string[num base] + result
            num 
    num // base
        
    return result

    print(convert_base(25516))  # Должно вывести 'FF' 

  10. Цитата Сообщение от Михаил Жданов
    Эй! Для гибкости можно кстати майку с помощью сторонних библиотек, например `numpy` или `scipy`, но у них нет такой функционала из коробки. Если все же решишь писать с нуля, важно корректно рассчитывать остатки и целое для разных баз. Вот базовый пример, как это может выглядеть:

    Программный код:
    def convert_base(numbase):
        
    convert_string "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        
    result ""
        
    while num 0:
            
    result convert_string[num base] + result
            num 
    num // base
        
    return result

    print(convert_base(25516))  # Должно вывести 'FF' 
    Тоже подходит, особенно если нужна производительность. Как насчет оптимизации для больших чисел?

Страница 1 из 2 12 ПоследняяПоследняя