Какая функция нужна перевода в восьмеричную систему в Python?
4 года назад
Andrey Moshkov
Ответы
Для перевода числа в восьмеричную систему счисления нужно воспользоваться функцией oct(). Функция возвращает конвертированное число в виде строки:
4 года назад
Владимир Устянивский
Перевод в восьмеричную систему делает встроенная функция oct(). Она возвращает строку с префиксом 0o:
Без префикса число выводят через format() или f-строку:
С ведущими нулями
Если нужно фиксированное число знаков, например 3 или 4:
Права доступа в Linux записывают тремя восьмеричными цифрами, поэтому формат 03o встречается часто:
Обратный перевод
Как перевести вручную
Делите число на 8 и записывайте остатки. Восьмеричная запись — остатки снизу вверх.
Переведём 100:
Снизу вверх: 144. Проверка: oct(100) → '0o144'.
Через двоичную запись
Каждая восьмеричная цифра соответствует трём битам. Разбейте двоичное число на тройки справа налево:
Тот же алгоритм на Python:
Частые ошибки
oct() принимает только целые числа: oct(2.5) вызовет TypeError. Отрицательные числа выводятся со знаком: oct(-8) → '-0o10'.
В Python 3 число с ведущим нулём 010 — синтаксическая ошибка. Восьмеричные литералы пишут с префиксом: 0o10.
Системы счисления и встроенные функции разбирают в бесплатном курсе «Основы Python».
18 дней назад
Никита Вихров
Похожие вопросы






